mysql nur 30 Datensätze mit JSON abrufbar?


#1

Hallo,
habe nun bemerkt, dass meine JSON-Datei bei Überschreiten der Datensatzanzahl von 30 Einträgen nicht mehr angezeigt bzw. leer ist. Wie kann ich das ändern? Gibt es da eine Beschränkung?

Hier mein php-Code zur JSON-Generierung:
http://www.techcad.bplaced.net/kategorie.php

<?php
require "conn.php";


if ($Allekategorien->connect_error) {

 die("Connection failed: " . $Allekategorien->connect_error);
} 

$sql = "SELECT * FROM Allekategorien";

$result = $Allekategorien->query($sql);

if ($result->num_rows >0) {


 while($row[] = $result->fetch_assoc()) {

 $tem = $row;

 $json = json_encode($tem);


 }

} else {
 echo "No Results Found.";
}
 echo $json;
$Allekategorien->close();
?>

#2

Unter dem von dir genannten Link werden mir 42 Einträge ausgegeben, nicht nur 30 oder keine. Hast du das Problem bereits gelöst?


#3

Jetzt bin ich aber selbst verwundert. Ja, es funktioniert. Habe aber seit das Problem aufgetreten ist nichts mehr geändert. Komisch?
Nichts desto trotz habe ich eine weitere Frage an euch. Sobald in einem Datenbankeintrag ein Umlaut enthalten ist (z.B. “Getränke”), ist die JSON-Ausgabe leer. Das Problem hatte ich gestern schon und ich habe es eben nochmal getestet - es tritt immer noch auf. Das hat sich leider nicht von selbst gelöst.


#4

Daten, Tabelle/Spalte und Datenbankverbindung auf UTF-8 eingestellt?


#5

Die php-Datei ist als “UTF-8 ohne BOM” abgespeichert.
Bei den Datenbankeinträgen ist unter Kollatation “latin1_swedish_ci” eingestellt. Ich vermute mal, dass hier der Fehler ist. Hier besteht die Möglichkeit unterschiedliche UTF-8 einstellen. Welches muss ich hier auswählen? Es gibt z.B. utf-8_bin, utf-8_general, utf-8_unicode_ci.


#6

Habe nun verschiedene UTF-8 eingestellt und getestet. Leider ist die JSON immer noch leer.

Hiermit funktioniert es nun bedingt:

 mysqli_query($Allekategorien, "SET NAMES 'utf8'");

Es werden nun alle Einträge dargestellt. Allerdings ist die Darstellung der Umlaute noch nicht korrekt:

{"id":"7","Kategorie":"Getr\u00e4nke"}

Gibt es hierzu eine Lösung?


#7

Hallo

Du könntest noch folgendes probieren:
mysqli_set_charset($dblink, 'utf8');

lg