Ik probeer een zoekfunctie in een MySQL database in PHP te coden.

Dit is de code die ik gebruik om de resultaten van de zoekopdracht weer te geven:

while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
 {
 $Test_1 = $row["Test_1"];
 $QT = $row["QT"];
 echo "<tr>";
 echo "<td>$Test_1</td>";
 echo "<td>$QT</td>";
 echo "</tr>";
 }


Dit werkt gedeeltelijk, als ik bijvoorbeeld de volgende tabel heb:
Test_1: QT:
A 1
A 2
A 3

Een zoek functie op Test_1 = A geeft dan als resultaat:
Test_1: QT:
A 2
A 3

De 1 wordt domweg overgeslagen en ik heb geen flauw idee waarom.
Als iemand me een duw in de juiste richting kan geven; mijn dank.
Geef eens een klein stukje code dat hiervóór staat. Waarschijnlijk haal je reeds één record op voor de while().
Er voor staat:


if ($myrow = mysql_fetch_array($result)) 
 {
 while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
  {
  $Test_1 = $row["Test_1"];
  $QT = $row["QT"];
  echo "<tr>";
  echo "<td>$Test_1</td>";
  echo "<td>$QT</td>";
  echo "</tr>";
  }
 }	 
else 
 {
 echo "Niks gevonden. \n";	
 }


De if() is soms de schuldige?
Ik gebruikte die om te controleren of de zoekopdracht resultaten oplevert; is er een andere code daarvoor?
Ja, mysql_num_rows.
Even iets tussen door: je kunt toch maar één keer fetchen op een result? Of lag dat eerst aan mij?..
Nee, je kunt blijven fetchen tot er geen results meer zijn. Maar in de if doe je het al 1 keer (zoals reeds gezegd door SanThe) en daarna begin je overnieuw in je while loop, waardoor je daar dus het eerste resultaat mist.
Djemo schreef op 21.04.2008 21:46
Even iets tussen door: je kunt toch maar één keer fetchen op een result? Of lag dat eerst aan mij?..
Ja dat ligt aan jou, in een while fetch je al zo vaak als dat nodig is. Dat kan dus duizenden keren zijn...

Dat is hier ook het probleem, op regel 1 wordt er gefetcht zonder iets met dit resultaat te doen en op regel 3 wordt de volgende rij uit de resultset gefetcht. De eerste rij verdwijnt dus in het niets.
M'n probleem is opgelost; bedankt.

Reageren