Gå til innhold

While løkke i while løkke


Anbefalte innlegg

Videoannonse
Annonse

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?

Lenke til kommentar

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.

Lenke til kommentar

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 av Erik B.
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...