Erik B. Skrevet 27. mai 2008 Skrevet 27. mai 2008 Hei. Er det på noen måte mulig å ha en while løkke inn i en while løkke slik som dette: while () { while () { } } ? Takk for svar!
Ueland Skrevet 27. mai 2008 Skrevet 27. mai 2008 Ja det går fint, det er jo bare å teste så ser du det fort.
Erik B. Skrevet 27. mai 2008 Forfatter Skrevet 27. mai 2008 Jeg har nemlig en kode hvor det først kjøres en sql spørring i en while løkke, og deretter kjøres det en ny sql spørring i en ny sql spørring i samme while løkke. slik: while (SQL spørring 1) { while (SQL spørring 2) { } } Men dette går ikke, SQL spørring looper ikke, men repeterer seg bare en gang. Hvor kan problemet ligge?
Danny92 Skrevet 28. mai 2008 Skrevet 28. mai 2008 Fikk det til en gang Gjorde det på denne måten: while (SQL spørring 1) { while (SQL spørring 2) } Tokk ikke med {} på den andre whilen, da funka det for meg..
Ueland Skrevet 28. mai 2008 Skrevet 28. mai 2008 Uten klammene vil kun første linjen kjøres, så det har fint lite med saken å gjøre. At flere løkker dør ved bruk av SQL skyldes surring med variabelnavn eller overskrivinger av SQL-resultatsett. Noe koden nok og vil forklare.
Erik B. Skrevet 28. mai 2008 Forfatter Skrevet 28. mai 2008 (endret) Spørringene ligger forresten i en funksjon, dersom dette har noe å si. Her er koden. function hentAlbum($oppKoble, $a_tb, $am, $filnavn, $b_tb) { $sql="SELECT * FROM ".$a_tb." ORDER BY id DESC"; $res=mysql_query($sql, $oppKoble); while ($hent=mysql_fetch_array($res)) { $albId=$hent['id']; $albumTittel=$hent['albumTittel']; $albumBilde=$hent['albumBilde']; $beskrivelse=$hent['beskrivelse']; echo "<h2>".$albumTittel."</h2>"; echo "<img src='".$am."/".$albumBilde."' alt='".$albumTittel."' />"; echo nl2br($beskrivelse); $sql2="SELECT min(id) FROM ".$b_tb." WHERE albumId='".$albId."'"; $res2=mysql_query($sql2, $oppKoble); while ($hent2=mysql_fetch_array($res2)) { $minAlbId=$hent2['filnavn_bilde']; echo $sql2; echo "MINID:".$minAlbId; } } } Problemet her er at $minAlbId kun blir skrevet ut ved siste repetesjon. Og da blir alle resultatene av $minAlbId skrevet ut etter hverandre. For å skrive illustrere problemet, kan vi ta som et eksempel at while løkken kjører 3 repetisjoner, utfallet blir da: $minAlbId: (tom) $minAlbId: (tom) $minAlbId: 123 (altså alle verdiene som skulle vært fordelt utover de 2 andre også.) Se bort fra det som tidligere er skrevet. Koden over skriver ikke ut $minAlbId i det hele tatt. Hvordan kan dette fikses? Noen som vet hvor problemet ligger? Takk for hjelp så langt! edit: Fant ut av, det. Glemt det! Endret 28. mai 2008 av Erik B.
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå