[php] foreach

Pagina: 1
Acties:
  • 42 views sinds 30-01-2008

  • jochem81
  • Registratie: Maart 2006
  • Laatst online: 08-05-2025
Ik heb op mijn site enkele checkboxen en ik wil controleren of deze wel of niet gechecked moeten zijn, het probleem is dat de waarden waarmee ik dit controleer uit een andere Mysql query komen. Ik probeer dit nu dmv foreach lus en heb nu de volgende code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
<? $query = "SELECT * FROM onderzoekers ORDER BY achternaam";
    $resultaat = mysql_query($query) or die (mysql_error());
    while($data2 = mysql_fetch_object($resultaat)){ ?>
    <input name="O_id[]" type="checkbox" value="<? echo $data2->O_id;?>"
        <? $query = "SELECT o.O_id FROM onderzoekers o LEFT JOIN koppeltabel k ON o.O_id=k.O_id WHERE k.id=56";
        $resultaat = mysql_query($query) or die(mysql_error());
        while ($row = mysql_fetch_array($resultaat, MYSQL_NUM)) {
          foreach ($row as $value) { if ($data2->O_id == $value) { echo "checked";} }
        } ?>
     /><? echo $data2->voornaam." ".$data2->tussenvoegsel." ".$data2->achternaam;?><br />
    <? } ?>


Dit werkt helaas niet aangezien alleen de eerste checkbox wordt gecontroleerd en het script hierna stopt. Wat doe ik hier verkeerd?

Verwijderd

for($i=0; $i<$aantal; $i++){
while ($row = mysql_fetch_array($resultaat, MYSQL_NUM)) {
whatever er herhaald moet worden
}

$aantal het aantal sql resultaten

[ Voor 29% gewijzigd door Verwijderd op 29-03-2006 20:54 ]


  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
Met de while lus loop je al rij per rij af, die foreach hoort daar dus niet. Dit lijkt me ook gewoon in 1 query te kunnen. Gewoon kijken of het veld waarin je de waarden van de checkbox (0 of 1) bijhoudt 1 is. Is ie dat, dan print je checked af. Overigens hoort het checked="checked" te zijn ;)

March of the Eagles


Verwijderd

Wat je al verkeerd doet is onleesbare code schrijven. Verder kun je best zelf debuggen.

Let er vooral even op dat je die result van de "binnenste" mysql_query niet in $resultaat opslaat, de binnenste while loop vraagt alle rows in $resultaat op, waardoor er voor de buitenste while lus geen resultaten meer zijn.

Kan me best voorstellen dat je dat niet meer ziet in zulke onduidelijke code.

  • André
  • Registratie: Maart 2002
  • Laatst online: 23-02 17:02

André

Analytics dude

WEB -> PRG

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Simpelweg even logisch nadenken en zelf debuggen dus. :)

Lees even Programming FAQ - Debuggen: hoe doe ik dat? door, daar heb je vast wel wat aan. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.