gästebuch mit line ... fehler im php
schneekanone
- php
0 Rouven0 Bobby0 ChrisB0 Sven Rautenberg
hallöchen, ich bin dabei, für eine bandpräsentation, ein gästebuch zu erstellen
leider kommen dauernd fehlermeldungen wie diese hier
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /users/tribute/www/gaestebuch.php on line 152
hab immer aus dem quelltext den fehler kopiert und erhofft das ich bei google eine lösung finde, leider nein und nun eure hilfe bitte hier der quelltext für das obige problem
Lines 151 - 155
<?
while ($row = mysql_fetch_array($result))
{
$datum = strftime('%d. %b. %Y, %H:%M', $row['datum']);
?>
Hello,
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /users/tribute/www/gaestebuch.php on line 152
was dir PHP damit sagt ist: was du mir da als Argument übergeben hast ist kein MySQL-Ergebnis. Soll heißen, die Abfrage vorher ist schief gelaufen, möglicherweise ist deine Datenbankverbindung schon fehlgeschlagen. Vorsichtig gesagt, dieser Fehler lässt auf schlampige Fehlerbehandlung schließen. Werte regelmäßig nach den Vorgängen connect, select, query die Rückgabe aus, greife ggf. auf mysql_error zurück.
MfG
Rouven
Moin
Du hast keinen gültigen Query aufgerufen.
Wie sieht $result bei dir aus?
Wie schaut deine verbindung zur Datenbank aus?
Gruß Bobby
Hi,
hallöchen, ich bin dabei, für eine bandpräsentation, ein gästebuch zu erstellen
leider kommen dauernd fehlermeldungen wie diese hierWarning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /users/tribute/www/gaestebuch.php on line 152
Das heisst, das schon vorher bei der Datenbankabfrage etwas schief ging.
Frage, nachdem du Operationen auf der Datenbank machst (Verbindung herstellen, Datenbank auswaehlen, Query absenden) immer zunaechst den Rueckgabewert der jeweiligen Funktion ab - die haben alle die Eigenschaft, im Fehlerfalle false zurueckzuliefern.
Und wenn eine dieser Funktionen das macht, dann ist es sinnfrei, im Script einfach weitermachen zu wollen.
In so einem Falle lasse dir dann direkt hinter dem fehlerhaft verlaufenen Funktionsaufruf die Rueckgabe von mysql_error() zurueckgeben - damit sagt dir die Datenbank dann, was genau falsch war.
Und wenn der Fehler beim Absetzen einer Query auftritt, die dynamisch generiert wurde - dann lasse dir auch deren Inhalt zur Kontrolle ausgeben.
hab immer aus dem quelltext den fehler kopiert und erhofft das ich bei google eine lösung finde, leider nein und nun eure hilfe bitte hier der quelltext für das obige problem
Der ist in diesem Falle weniger interessant, weil das Problem schon vorher auftritt.
MfG ChrisB
Moin!
<?
while ($row = mysql_fetch_array($result))
{
$datum = strftime('%d. %b. %Y, %H:%M', $row['datum']);
?>
Zusätzlich zu den restlichen Anmerkungen: Datumsformatierung würde ich ebenfalls im SQL-Statement vornehmen, und insbesondere auch dafür sorgen, dass die Spalte "datum" auch einen Typ hat, der in der Datenbank für Daten verwendet wird: DATE oder DATETIME. Es ist keine sonderlich gute Idee, in Datenbanken mit Unix-Timestamps als INTEGER zu operieren, weil ein Integer in der Regel nur 32 Bit groß ist und im Jahr 2038 überläuft (BIGINT würde abhelfen, hat aber wieder andere Probleme), und außerdem sämtliche DB-Datumsfunktionen nicht direkt zur Verfügung stehen, weil das Datum erst aus dem Timestamp gewandelt werden muss.
- Sven Rautenberg