Oli: Einfaches Datenbankfeld per PHP auslesen

Hallo,
versuche mir seit ein paar Tagen, PHP in Verbindung mit MySQL anzueignen.

Problem ist folgendes:
Habe in meiner DB eine Tabelle namens "ipsperre". Sie ist in zwei Spalten unterteilt, "ip" und "time".
Jetzt soll er anhand der IP die dazugehörige Zeit in eine Variable $ergebniswarten packen, damit ich die Zeit danach per date() in ein normales Format umwandeln kann. Irgendwie komm ich aber nichtmal bis zu dem Punkt, dass er mir bei $zeit die ganzen Sekunden anzeigt... Stattdessen immer Fehlermeldung (resource... #4). Habe viel gesucht, aber immer nur was zu Arrays gefunden, ich will ja nur EIN Feld ausgeben.

Mein Code:
{
$abfragewarten = "SELECT time FROM ipsperre WHERE ip LIKE '$ip'";
$ergebniswarten = mysql_query($abfragewarten);

//Zeitumwandlung kommt hierhin

echo "$ergebniswarten";
}

$ip ist weiter oben bereits definiert.

Ist bestimmt totaaal falsch oder?

Danke
Oli

  1. hi,

    Stattdessen immer Fehlermeldung (resource... #4).

    Das ist kein Fehler, sondern der Ergebnistyp einer erfolgreichen Abfrage.

    Da musst du die Daten jetzt auch noch "herausholen" - schau dir im Manual die mysql_fetch-Funktionen an.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Finde irgendwie keine gute Erklärung für diese Funktion, wahrscheinlich bin ich nur zu blöd dazu...

      Reicht es, wenn ich

      $ergebniswarten2=mysql_fetch($ergebniswarten[0]); hinten dran hänge?

      Gibt er mir mit echo $ergebniswarten2 dann die korrekte Zeit aus?

      Danke
      Oli

      1. hi,

        Reicht es, wenn ich
        $ergebniswarten2=mysql_fetch($ergebniswarten[0]); hinten dran hänge?

        Gibt er mir mit echo $ergebniswarten2 dann die korrekte Zeit aus?

        Wenn diese im ersten Datensatz im ersten Feld, welches du selektiert hast, steht - dann ja.

        Eine Fehlerbehandlung für eine nicht erfolgreiche Abfrage solltest du ebenfalls noch einbauen.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Wenn diese im ersten Datensatz im ersten Feld, welches du selektiert hast, steht - dann ja.

          Dadurch, dass eine IP nur einmal vorkommen kann, und jeder IP nur eine Zeit zugeordnet ist, bleibt ja nur noch ein mögliches Feld übrig.

          Eine Fehlerbehandlung für eine nicht erfolgreiche Abfrage solltest du ebenfalls noch einbauen.

          Wie kann ich denn einen Fehler ausgeben, wenn die jeweilige IP nicht gefunden wird?

          Danke
          Oli

          1. Hallo

            Eine Fehlerbehandlung für eine nicht erfolgreiche Abfrage solltest du ebenfalls noch einbauen.
            Wie kann ich denn einen Fehler ausgeben, wenn die jeweilige IP nicht gefunden wird?

            Aus Datenbanksicht ist dies durchaus eine erfolgreiche Antwort :-) Siehe dazu auch den Handbuchabschnitt mysql_query(). Dort erhältst Du Informationen darüber, was im Fehlerfall zurückgegeben wird.

            Verwende im Erfolgsfall mysql_num_rows(), um festzustellen, wieviele Zeilen Dir zurückgeliefert wurden.

            Freundliche Grüße

            Vinzenz

          2. Hello,

            Wie kann ich denn einen Fehler ausgeben, wenn die jeweilige IP nicht gefunden wird?

            Es ist manchmal günstiger, einen gezielten UPDATE-(oder REPLACE-)Auftrag zu geben und dessen Ergebnis auszuwerten.

            Beispiel:
            Wenn ein Update möglich war, war der letzte Besuch innerhalb des Zeitfensters, wenn nicht, eben nicht... Varianten sind möglich :-)

            Harzliche Grüße vom Berg
            http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau

      2. echo $begrüßung;

        Reicht es, wenn ich
        $ergebniswarten2=mysql_fetch($ergebniswarten[0]); hinten dran hänge?
        Gibt er mir mit echo $ergebniswarten2 dann die korrekte Zeit aus?

        Garantiert nicht. Stattdessen bekommst du eine Fehlermeldung. (Beim Entwickeln ist es empfehlenswert, das error_reporting auf E_ALL zu stellen, damit sie nicht unterdrückt werden.) $ergebniswarten ist vom Typ Ressource, das ist kein Array, und erst recht noch nicht deine Daten. Erst die Fetch-Funktionen holen die Daten. Damit sie an die richtige Stelle zugreifen benötigen sie die Ressourcen-Kennung. Ein funktionierendes Beispiel einer vollständigen Datenbankabfrage ist im Handbuch zu finden: http://de.php.net/manual/en/ref.mysql.php

        echo "$verabschiedung $name";