schneekanone: gästebuch mit line ... fehler im php

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']);
?>

  1. 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

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Don't lick your wounds: celebrate them. The scars you bear are the signs of a competitor.  --  character Richard Webber on Grey's Anatomy: 'Where the wild things are'
  2. Moin

    Du hast keinen gültigen Query aufgerufen.

    Wie sieht $result bei dir aus?
    Wie schaut deine verbindung zur Datenbank aus?

    Gruß Bobby

    --
    -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
    -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
    ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
  3. Hi,

    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

    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

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
  4. 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