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
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>';
?>
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.
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'
[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.