Einfaches Datenbankfeld per PHP auslesen
Oli
- php
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
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
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
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
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
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
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
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";