PHP MySQL-Abfrage liefert nicht alle Zeilen

C

Cave Johnson

Gast
Hi,

ich habe ein merkwürdiges Problem mit dynamisch nachgelandenen Inhalten aus einer MySQL-DB via jQuery. Ich habe zunächst eine statische Abfrage, die mir 25 Zeilen liefert. Dynamisch sollen dann immer 25 weitere Zeilen aus der DB nachgeladen werden.

Die Abfrage ist also im Grunde dieselbe, nur, dass das LIMIT angepasst wird. Ich habe beide SELECTs auch schon verglichen und sie sind - mit Ausnahme des LIMITs - identisch.

Die statische Abfrage klappt wunderbar, ich erhalte meine 25 Zeilen. Die dynamische Abfrage klappt dagegen nicht.

  • Von den ersten 25 weiteren Zeilen (quasi LIMIT 25, 25) wird mir bspw. nur die erste der 25 Zeilen ausgegeben.
  • Von den zweiten bis fünften weiteren 25 Zeilen (also LIMIT 50, 25 bis LIMIT 125, 25) erhalte ich gar keine Zeile.
  • Die sechsten 25 (LIMIT 150, 25) weiteren Zeilen geben mir nur 3 zurück, ...

Ich sehe die Antwort vom Script auch in Firebug in der Konsole - es ist also nicht so, dass die Daten irgendwo falsch im Quellcode integriert werden; die Daten kommen definitiv nicht an.

Wenn ich mir aber den SELECT-Ausdruck mit echo anzeigen lasse und 1:1 nach phpMyAdmin kopiere und dort als SQL-Befehl ausführe, dann werden mir alle 25 Zeilen aus der DB zurückgegeben.


Ich steh nun irgendwie auf dem Schlauch - wie kann mir das PHP-Script mal 1, mal 0 und mal 3 Zeilen liefern; wohingegen ich in phpMyAdmin mit demselben SQL-Befehl immer die korrekte Ausgabe erhalte?
 
Zuletzt bearbeitet:
Hast du dir denn im Skript mal ein bisschen was an Debug ausgeben lassen?

Ich würde mir jetzt erstmal vor und nach jedem Teilschritt im Skript die DB Daten dumpen lassen, die du von der DB zurückgeliefert bekommst, angefangen direkt beim fetch.
 
Ich würde stark drauf tippen dass da irgendwo Sonderzeichen drin sind, die dir das JSON zerhauen. Versuch mal die 25 Zeilen direkt an den Browser zu schicken (also die Daten hart als Array im Code hinterlegen) und guck mal ob das funktioniert, ich könnte wetten da kriegst du auch nur eine Zeile ausgegeben. Respektive lass dir im PHP mal die Anzahl der zurückgegebenen Sätze der Query ausgeben, wenn das 25 sind wirds wohl wirklich am encoding hapern.
 
So, hab den Fehler gefunden; in der Ausgabe hatte ich kürzlich einen Funktionsaufruf eingebaut - auf die Funktion hatte das Script zum Nachladen aber keinen Zugriff, und da stieg das dann aus.

Warum mir aber manchmal trotzdem einige Zeilen ausgegeben wurden und manchmal nicht, versteh ich trotzdem nicht. Aber egal :)
 
Zurück
Oben