Ik wil een select box vullen met wat data uit me tabel:
Mysql Tabel tblWoonpakketInstellingen:

id	setting				value0				value1
1	LeeftijdHoofdkostwinner	Maak hier uw keuze		0
2	LeeftijdHoofdkostwinner	30 jaar en jonger		3
3	LeeftijdHoofdkostwinner	31 t/m 40 jaar			5
4	LeeftijdHoofdkostwinner	41 t/m 45 jaar			11
5	LeeftijdHoofdkostwinner	46 t/m 50 jaar			16
6	LeeftijdHoofdkostwinner	51 t/m 60 jaar			23
7	LeeftijdHoofdkostwinner	61 t/m 70 jaar			20
8	LeeftijdHoofdkostwinner	71 jaar en ouder		18



Code die ik gebruik om de select te vullen met de data uit de tabel(verkregen via phphulp):
<?php
//arrays voor Leeftijd Hoofdkostwinner, laden uit database
mysql_connect($host,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query = '';
$result = mysql_query($query) or die(mysql_error());
mysql_close();
$arrLeeftijdHoofdkostwinner[] = "Maak hier uw keuze";
while($row = mysql_fetch_assoc($result)){
$arrLeeftijdHoofdkostwinner[] = $row['value0'];
}//einde while
?>
[/code]
alle php code werkt alleen ik kom even niet uit de sql query

de query die ik wil draaien is haal alles op waar in setting LeeftijdHoofdkostwinner staat.
ik selecteer daar vervolgens in me php code value0 om de select te vullen

ik had zelf dit gemaakt:

SELECT * FROM tblWoonpakketInstellingen WHERE setting LIKE LeeftijdHoofdkostwinner


zijn er trouwens goede tools om die querys makkelijk te kunnen maken voor osx??
ik heb al mysql query browser geprobeerd maar die kan niet verbinden met me mysql ivm een socket probleem

alvast bedankt!
Een string hoort natuurlijk wel tussen quotes...

SELECT *
FROM tblWoonpakketInstellingen
WHERE setting = 'LeeftijdHoofdkostwinner'

Verder is je datamodel niet helemaal correct en zul je nog verder moeten normaliseren. In de kolom setting sla je nu namelijk meerdere malen de string 'LeeftijdHoofdkostwinner' op. Je zou eigenlijk een aparte tabel voor de verschillende settings moeten gebruiken...

Tevens zeggen de kolomnamen value0 en value1 helemaal niets over de inhoud van die kolom. Slechte namen dus.
<?php
//arrays voor Leeftijd Hoofdkostwinner, laden uit database
mysql_connect($host,$username,$password) or die( "Unable to connect");
mysql_select_db($database) or die( "Unable to select database");
$query = "SELECT * FROM tblWoonpakketInstellingen WHERE 1=1 ORDER BY id";
$result = mysql_query($query) or die(mysql_error());
echo '<select name="LeeftijdHoofdkostwinner">';
while($row = mysql_fetch_assoc($result)){
echo '<option value="' . $row['value1'] . '">' . $row['value0'] . '</option>';
}//einde while
echo '</select>';
?>
Blanche schreef op 29.10.2007 14:26
Een string hoort natuurlijk wel tussen quotes...

SELECT *
FROM tblWoonpakketInstellingen
WHERE setting = 'LeeftijdHoofdkostwinner'

Verder is je datamodel niet helemaal correct en zul je nog verder moeten normaliseren. In de kolom setting sla je nu namelijk meerdere malen de string 'LeeftijdHoofdkostwinner' op. Je zou eigenlijk een aparte tabel voor de verschillende settings moeten gebruiken...

Tevens zeggen de kolomnamen value0 en value1 helemaal niets over de inhoud van die kolom. Slechte namen dus.


hi Blanche

bedankt voor je reply.

je hebt gelijk over me tabel.

maar hoe kan je anders een settings tabel maken?
ik wil er ook nog andere settings in zetten. en eventueel settings die nog niet bekend zijn
Ik vond deze manier wel heel flexibel.

thx
Een aparte tabel waarin je alle settings opslaat:

settings
----------
id
setting

tblWoonpakketInstellingen
---------------------------
id
setting_id
...

Het setting_id verwijst naar het id uit de settings tabel. Vervolgens kun je met een join de benodigde gegevens ophalen. Je query zou er dan bijvoorbeeld zo uit zien:

SELECT w.*, s.setting
FROM 
    tblWoonpakketInstellingen AS w,
    settings AS s
WHERE
    w.setting_id = s.id
AND
    s.setting = 'LeeftijdHoofdkostwinner'


ps. @SanThe: 'WHERE 1=1'. Grapje?
Blanche schreef op 29.10.2007 14:39
@SanThe: 'WHERE 1=1'. Grapje?

Nee, simpele manier om alles te pakken.
SanThe schreef op 29.10.2007 14:43
Nee, simpele manier om alles te pakken.
Ehm, WHERE clausule weglaten lijkt me iets logischer in dat geval?
@Blanche: Klopt, maar ik weet eigenlijk niet of je WHERE weg kan laten terwijl je ORDER BY gebruikt. Vandaar.
SanThe schreef op 29.10.2007 14:48
@Blanche: Klopt, maar ik weet eigenlijk niet of je WHERE weg kan laten terwijl je ORDER BY gebruikt. Vandaar.
Niets is verplicht, behalve "SELECT iets FROM tabel". Verder ook geen afhankelijkheden, behalve HAVING en GROUP BY voor zover ik nu kan bedenken.
PHPerik schreef op 29.10.2007 14:49
[quote='SanThe schreef op 29.10.2007 14:48']@Blanche: Klopt, maar ik weet eigenlijk niet of je WHERE weg kan laten terwijl je ORDER BY gebruikt. Vandaar.
Niets is verplicht, behalve "SELECT iets FROM tabel". Verder ook geen afhankelijkheden, behalve HAVING en GROUP BY voor zover ik nu kan bedenken.[/quote]Zelfs dat niet, SELECT 1 werkt ook prima.
bedankt!!!

stom van die haakjes :P

Blanche ik zie dat jij ook een mac gebruikt, klopt dat?


weet jij een goede query/db tool voor het ontwerpen van queries en databases?

thx

Reageren