[SQL] Meerdere 'rijen' maar slechts 1 in array
pim1991 - 18/03/2010 13:05
PHP interesse
Hallo,
Zit met het volgende stuk script:
$query = mysql_query("SELECT naam FROM VBO_doel WHERE vboID = '".$row_vbo_wijzigen['vboid']."'")or die(mysql_error());
$row = mysql_fetch_array($query);
Probleem: Hij haalt slechts 1 rij eruit ...
Als ik hem in phpmyadmin invoer geeft hij er 5 (en dat is de bedoeling!)
Ik doet blijkbaar iets fout maar weet niet wat...
Ik moet het in array hebben omdat ik namelijk een vergelijking moet maken met een aantal opties (vast gedefineerd) met de functie in_array().
Alvast bedankt!
6 antwoorden
Gesponsorde links
Ultimatum - 18/03/2010 13:17
PHP expert
$query = mysql_query("SELECT naam FROM VBO_doel WHERE vboID = '".$row_vbo_wijzigen['vboid']."'")or die(mysql_error());
while($row = mysql_fetch_array($query)) {
}
Nu loopt hij door alle records heen die gevonden zijn. Voer je code uit zoals je al deed maar nu binnen de while.
pim1991 - 18/03/2010 15:45 (laatste wijziging 18/03/2010 16:02)
PHP interesse
Geprobeerd en dan krijg ik dus maar 1 waarde terug i.p.v. 5
EDIT: Gaat om deze code:
<?php
$query = mysql_query("SELECT naam FROM VBO_doel WHERE vboID = '".$row_vbo_wijzigen['vboid']."'")or die(mysql_error());
$row = mysql_fetch_array($query);
//while($row = mysql_fetch_array($query, MYSQL_ASSOC)){$namen .= $row['naam'].";";}
$options = array("woonfunctie","bijeenkomstfunctie","celfunctie","gezondheidszorgfunctie","industriefunctie","kantoorfunctie","logiesfunctie","onderwijsfunctie","sportfunctie","winkelfunctie","overige gebruiksfunctie");
foreach($options as $option) {
if(in_array($option,$row)) {
echo "<option value=\"".$option."\" selected=\"selected\">".$option."</option>";
}else{
echo "<option value=\"".$option."\">".$option."</option>";
}
}
?>
<?php
//while($row = mysql_fetch_array($query, MYSQL_ASSOC)){$namen .= $row['naam'].";";}
$options = array ( "woonfunctie" , "bijeenkomstfunctie" , "celfunctie" , "gezondheidszorgfunctie" , "industriefunctie" , "kantoorfunctie" , "logiesfunctie" , "onderwijsfunctie" , "sportfunctie" , "winkelfunctie" , "overige gebruiksfunctie" ) ; foreach ( $options as $option ) {
echo "<option value=\" " . $option . "\" selected=\" selected\" >" . $option . "</option>" ; } else {
echo "<option value=\" " . $option . "\" >" . $option . "</option>" ; }
}
?>
TotempaaltJ - 18/03/2010 21:10 (laatste wijziging 18/03/2010 21:10)
PHP interesse
<?php
$query = mysql_query("SELECT naam FROM VBO_doel WHERE vboID = '".$row_vbo_wijzigen['vboid']."'")or die(mysql_error());
while($row = mysql_fetch_array($query, MYSQL_ASSOC)) {
$namen .= $row['naam'].";";
}
$options = array("woonfunctie","bijeenkomstfunctie","celfunctie","gezondheidszorgfunctie","industriefunctie","kantoorfunctie","logiesfunctie","onderwijsfunctie","sportfunctie","winkelfunctie","overige gebruiksfunctie");
foreach($options as $option) {
if(in_array($option,$row)) {
echo "<option value=\"".$option."\" selected=\"selected\">".$option."</option>";
}else{
echo "<option value=\"".$option."\">".$option."</option>";
}
}
?>
<?php
$namen .= $row [ 'naam' ] . ";" ;
}
$options = array ( "woonfunctie" , "bijeenkomstfunctie" , "celfunctie" , "gezondheidszorgfunctie" , "industriefunctie" , "kantoorfunctie" , "logiesfunctie" , "onderwijsfunctie" , "sportfunctie" , "winkelfunctie" , "overige gebruiksfunctie" ) ; foreach ( $options as $option ) {
echo "<option value=\" " . $option . "\" selected=\" selected\" >" . $option . "</option>" ; } else {
echo "<option value=\" " . $option . "\" >" . $option . "</option>" ; }
}
?>
Het is geen doodzonde om je code een beetje netjes te indenteren!
Verder slaat dit natuurlijk helemaal nergens op. Nu prop je gewoon at random wat Ultimatum zei in je Query. Dit is basis! Doe een PHP & MySQL tutorial van deze site en je snapt het weer helemaal
pim1991 - 19/03/2010 00:53
PHP interesse
Hoe wil je het anders oplossen? Ik zie het echt niet...
Ik zet in de $row de result van de SQL. In de $options staan alle mogelijkheden die er maar gevonden kunnen worden. Staat de optie $row in $options dan selecteert die.
Jelmerholland - 19/03/2010 07:18 (laatste wijziging 19/03/2010 08:04)
PHP beginner
Omdat je de mysql_fetch_array($query) in de $row zet. Maar dmv van de while-loop bliijft dat script dat net zo lang doen totdat je ALLE records hebt gehad. Dan zet je in je while-loop een echo "TestTest<br/>"; en run je je script. Als jij 5 records hebt dan krijg je 5x die test. Nou kan je
$row['id'] en $row['kolomX'] inladen. Snappie? Hij zet zeg maar alles in een array die je verder kan gebruiken.
Neem anders even de mysql tutorial op w3schools door. http://www.w3schools.com > php > mysql
Koen schreef:
Let eens op je taal- en spellingsgebruik, dit is geen instant messaging client. Het is niet de eerste keer dat het me opvalt.
Gesponsorde links
Dit onderwerp is gesloten .