19. august 2003 - 13:43Der er
5 kommentarer og 1 løsning
Der mangler en række i resultatsættet??
Dette er mig en gåde:
Jeg har en database, hvor denne query burde resultere i 4 rækker med resultater, eftersom der er 4 hold, der har kategori_id = 4:
------------------- $strSQL="SELECT * FROM us_hold WHERE us_hold.kategori_id = 1";
$result = executeSQL($strSQL);
while($data = mysql_fetch_array($result) { // Skriv resultaterne } --------------------- Men af en eller anden grund bliver den sidste række altid udeladt. Hvis jeg "snyder" lidt og gør som følger, fungerer det: ----------------------- //samme $strSQL som før $result = executeSQL($strSQL);
$rows = mysql_num_rows($result); for ($i=-1; $i<$rows;$i++) { $data = mysql_fetch_array($result); // Skriv resultaterne } --------------------------- Min barnelærdom siger mig, at man plejer at sætte $i til 0 ved første iteration, men jeg er nødt til at gøre det som ovenfor og sætte den til -1. Hvad der gør det endnu mere sært er, at hvis jeg indtaster den dersens query ($strSQL) direkte i phpMyAdmin, får jeg alle 4 rækker korrekt vist.
Som sagt har jeg løst problemet ved at sætte $i til -1, men det virker kraftedeme da bøvet, at jeg ikke bare kan bruge en while-løkke, ligesom jeg plejer.
Til de interesserede kan jeg sige, at ovenstående selvfølgelig er en stærkt nedkogt udgave af den "rigtige" query, idet der sføli er mange forskellige kategori_id'er, men efter lang tid har jeg sporet problemet til at ligge her.
din øverste while skulle virke udemærket. og hvis noget blev udeladt skulle det være den første record (fordi din funktion executeSQL piller ved det recordset der returneres fra SQL.
For at få klart svar må du vise koden til executeSQL funktionen (og evt de funktioner den benytter). Vi er dygtige, men vi er ikke dygtige nok til at gætte præcis hvad dine hjemmelavede funktioner gør.
Måske fordi din funktion returnerer noget uventet på sidste row - en "last-row" markering af at det er den sidste f.eks. frem for at den returnere en "no--data" ved næste kald. ?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.