PHP: Datensätze vorhanden, aber mysqli_fetch_object gibt keine Ergebnisse aus?
Hallo zusammen,
ich bräuchte einmal einen Gedankenanstoß.
Ich will mit einem ganz normalen mysqli_query Tabelleneinträge aus einer MySQL-Datenbank ausgeben. Wenn ich die reine SELECT-Anweisung direkt in phpMyAdmin eintrage, bekomme ich korrekte Treffer. Aber zusammen mit PHP wird dann plötzlich nichts mehr ausgegeben, obschon auf der gleichen Seite reihenweise andere Abfragen in der gleichen Datenbank erfolgreich ausgegeben werden.
Es gibt für mich überhaupt keinen erkennbaren Grund, warum 9 Abfragen korrekt beantwortet werden, aber diese eine plötzlich nicht, trotz vorhandener Tabelleneinträge.
Die Abfrage sieht so aus:
$ergebnis = mysqli_query($db, "hier-die-korrekte-und-funktionierende-select-Abfrage'");
while ($row = mysqli_fetch_object($ergebnis)) {
echo"$row->tabellenfeld";
}
Wo muss ich ansetzen? Kann man das so erkennen?
2 Antworten
Prüfe zunächst stets das Ergebnis von mysqli_query, denn dieses kann unterschiedlichen Typs sein.
$result = mysqli_query($db, "your SQL query");
if ($result) {
// ...
}
Der nächste Schritt wäre die Ausgabe von $row:
print_r($row);
um zu prüfen, was die Objekte überhaupt enthalten.
Die Anführungszeichen bei dem echo sind im Übrigen unnötig. Ein Leerzeichen sollte stattdessen zwischen Befehl und Argument gesetzt werden.
Hi regex9, danke erstmal für die schnelle Antwort. Rätselhaft für mich: Ein $result ist bei mir vorhanden. Die SELECT-Anweisung führt direkt in der Datenbank zu korrekten Treffern. Aber schon print_r($row) liefert nix mehr aus. Irgendwo geht was nicht, aber ich kann es einfach nicht erkennen. Und alle anderen Abfragen in der gleichen Tabelle/Datenbank laufen problemlos. Sieht alles wie alles andere aus... hm...
UPDATE
Herrgottnochmal... ich habe den Fehler entdeckt. Hat etwas mit dem Charset zu tun. In der SELECT-Anweisung war ein Umlaut, der zwar in phpMyAdmin korrekt erkannt wurde, aber eben bei der Ausgabe nicht mehr.
Problem gelöst ;-)