Hey mensen. Ik heb de volgende code waarmee ik een selectbox wil aanmaken. Hij moet alle namen uit de database halen en als option toevoegen aan de selectbox.
Maar nu blijven ze gewoon leeg. Omdat ik buiten de while blijf? Als ik het tussen de while zet krijg ik 3 selectboxen wat ook weer niet de bedoeling is.

Iemand enig idee?

$sql = "SELECT naam FROM customers";
$res = mysql_query($sql);
$i=0;
while ($row = mysql_fetch_array($res))
{
//$i = 0;
echo "ID nummer: $row[$i]<br>";
}

print"<select name=\"provincie\">";
print"<option value=\"$naam\">$row[$i]</option>";
print"</select>";
$i++;

<?php
echo '<select name="provincie">';
$sql = 'SELECT naam FROM customers';
$res = mysql_query($sql);
while ($row = mysql_fetch_array($res))
{
    echo '<option value="' . $row['naam'] . '">' . $row['naam'] . '</option>';
}
echo '</select>';
?>
Wat dacht je van $row['naam'] ?

Tip: gebruik enkele quotes in je php (behalve om de query), dan hoef je geen dubbele quotes in je html-output te escapen. Ziet er niet uit en gaat altijd fout.
doh... damnit natuurlijk... thanks!
Had natuurlijk die select voor de while kunnen gooien... ehehe...

thanks anyway :D
<?php
$sql = "SELECT id, naam FROM customers";
$res = mysql_query($sql) or die(mysql_error());
echo '<select name="provincie">';
while ($row = mysql_fetch_array($res))
{
echo '<option value="' . $row['id'] . '">' . $row['naam'] . '</option>';
}
echo '</select>';
?>

Edit: Tja, beetje laat geloof ik. ;-)
Ok volgend probleem. Ik gebruik een aparte template voor het formulier met het selectfield. Maar bij de volgende code zie ik alleen de eerste waarde uit de DB...ik krijg niet alle namen terug in de selectbox.

In de php staat dit:

$bestand = "tmpFacturen.tpl";
$fp = fopen($bestand, "rb");
$template = fread ($fp, filesize ($bestand));

$sql = 'SELECT naam FROM customers';
$res = mysql_query($sql);
while ($row = mysql_fetch_array($res))
{
$blaat = '<option value="' . $row['naam'] . '">' . $row['naam'] . '</option>';
}

$preaction = "toevoegen";

eval ("\$template2 = \"".addslashes($template)."\";");

print stripslashes($template2);
fclose ($fp);


En in mijn template nu dit:

<select name="naam">
$blaat
</select>
<?php
$bestand = "tmpFacturen.tpl";
$fp = fopen($bestand, "rb");
$template = fread ($fp, filesize ($bestand));
//maak een lege variabele met naam $blaat
$blaat = '';
$sql = 'SELECT naam FROM customers';
$res = mysql_query($sql);
while ($row = mysql_fetch_array($res))
{
//met de . geef je aan dat de nieuwe waarde aan de al bestaande waarde wordt toegevoegd
$blaat .= '<option value="' . $row['naam'] . '">' . $row['naam'] . '</option>';
}
?>
thanks... dat van die . was dus de fout
En als je die $blaat = ''; ook overneemt, dan voorkom je notices ;)

Reageren