Comunitatea PHP Romania
MightyDeals

Prima pagină Baze de date MySQL double while-mysql_fetch_row problem

double while-mysql_fetch_row problem

Întrebări legate de conectarea la baze de date MySQL prin intermediul PHP

Mesaj Mie Mai 09, 2012 9:55 am
Nacruel New Member

Mesaje: 2
Salut, am o problema cu codul :

$punctaj=0;
$rasp=mysql_query("select * from raspuns2");
$intr=mysql_query("select * from intrebare");
while($i=mysql_fetch_row($intr))
{while($r=mysql_fetch_row($rasp))
{echo $r[0].$i[5].$r[1].$i[4]; echo "<BR>";
if($r[0]==$i[5]&&$r[1]==$i[4])
$punctaj++;
}
}

Din testarea cu "echo $r[0]." am constatat ca nu imi face din nou primul while. Intra in el, parcurge tot al doilea while, dar nu intra din nou in primul.

Mesaj Mie Mai 09, 2012 1:23 pm
mndrk Avatar utilizator
Senior Member

Mesaje: 249
Localitate: Bucuresti

hmm..ok.. sunt mai multe lucruri ce ar trebuii schimate in codul tau.

1. nu folosii mysql_fetch_row foloseste mysql_fetch_assoc. Astfel nu mai ai proleme cu scriptul php cand schimbi structura unui tabel.
2. nu o sa mearga acel while deoarece al doilea while se termina pana sa se repete primul ( adica trece deja prin toate randurile returnate.. si nu o sa ia de la 0 de fiecare data)..de aceea cand ajunge sa se repete primul al doilea nu mai returneaza nimic.

Se poate repara foarte frumos astfel:

$raspunsuri = array();
while ($row = mysql_fetch_assoc($rasp)) { $raspunsuri[] = $row; }
$intrebari    = array();
while ($row = mysql_fetch_assoc($intr)) { $intrebari[]  = $row; }


Apoi cand ai nevoie de acel while in while.. scrii astfel:
foreach ($intrebari as $intrebare) {
  foreach ($raspunsuri as $raspuns) {
    // si aici adaugi cod..dar in loc de $intrebare[0], $intrebare[1] etc.. folosesti coloanele din baza de date: $intrebare['id'], $intrebare['continut'] etc.. depinde cum ai denumite coloanele.
  }
}

Mesaj Mie Mai 09, 2012 3:40 pm
Nacruel New Member

Mesaje: 2
Iti multumesc frumos pentru raspunsul rapid si foarte eficient. M-ai ajutat sa imi finalizez lucrarea de diploma.

Mesaj Dum Apr 14, 2013 12:55 am
Google Bot New Member

Mesaje: 1

Înapoi la MySQL

Copyright © 2001-2013 PHP Romania Gazduire web | Haine online | Gazduire web | Campanii SMS | Gazduire Claus Web | Inregistrare Domenii | Anunturi | Jocuri cu bile
Furnizat de phpBB® Forum Software © phpBB Group
Translation/Traducere: phpBB România
Powered by Simplis