[MySQL/Apache/PHP] kein Ergebnis

Hallo zusammen,

habe seit einigen Tagen, ohne an den Skripten etwas geändert zu haben (!), Probleme mit einem Gästebuchskript.
Früher sah der relevante Teil so aus:

$res=mysql_query(„SELECT msg as msg, date_format(datum,’$datumsFormat’) as datum, namen as namen FROM $mysqlTabelle ORDER BY id DESC LIMIT $start,$kommentareProSeite“) or die(„Fehler:“.mysql_error());
$zeilen = mysql_num_rows(mysql_query(„select id from $mysqlTabelle“));
while($row=mysql_fetch_row($res,MYSQL_ASSOC)) {
$int=$i/2;
$infos=unserialize(stripslashes($row[namen]));
$nachricht=stripslashes($row[msg]);
$nachricht=nl2br($nachricht);
[…]

Dabei bekomme ich jetzt die Fehlermeldung
„Warning: Wrong parameter count for mysql_fetch_row() in /public_html/php/gaestebuch/index.php on line 24“

Also hab ich dann natürlich das MYSQL_ASSOC rausgenommen,
bekomme dann aber im Gästebuch nichts mehr angezeigt.

Zunächst würde mich mal interessieren, warum diese Fehlermeldung urplötzlich auftritt, mit obigem Code lief alles monatelang einwandfrei (neue MySQL Version vielleicht?)
Als zweites natürlich wie ich das reparieren kann :wink:

Danke und Grüsse,
Andreas

Vermutlich ein PHP Update, wenn er die Funktion auf einmal nicht mehr kennt… von MYSQL_ASSOC habe ich noch nie etwas gehört und in der PHP Doku hat die Funktion auch nur einen Parameter… also das muss auf jeden Fall raus… warum dann gar nichts mehr kommt, weiss ich so auf Anhieb leider auch nicht… aber korrekt wäre die Syntax ohne den zweiten Parameter

Hallo Bruno,

und danke für deine Antwort.
Hättest du vielleicht eine Idee wie ich testen könnte, was genau das Problem verursacht?

Ich hab z.B. schonmal die SQL Abfrage in phpmyadmin direkt ausgeführt und das hat eine einwandfreie Rückgabe geliefert.
Der direkte Zugriff auf das Rückgabeergebniss per PHP dann aber komischerweise wieder nicht.
Weiß wirklich keinen Rat mehr…

Viele Grüsse,
Andreas

Naja mein Ansatz wäre dieser:
Erst mal prüfen, ob der SQL String auch der selbe war, schliesslich hast du Variablen drin, also

echo „SELECT msg as msg, date_format(datum,’$datumsFormat’) as datum, namen as namen FROM $mysqlTabelle ORDER BY id DESC LIMIT $start,$kommentareProSeite“;

an die Stelle schreiben und das Ergebnis dann rauskopieren und in phpmyadmin ausführen… oftmals entdeckt man dabei schon was…

ansonsten mal mit einer einfacheren query

SELECT * FROM tabelle oder so mal probieren ob die Datenbankzugriffe seit dem PHP Update überhaupt noch funktionieren.

Hallo Bruno,

leider war es das nicht - geht alles einwandfrei:
phpmyadmin gibt die richtigen Datensätze aus.

Komischerweise geht ein
echo $nachricht;
in der while Schleife schon nicht mehr. Das sollte mir doch die
Nachrichten zurückgeben, oder?

Gruss,
Andreas