PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : richtige Abfrage


ChrisE
14.01.2005, 16:22:19
Hallo,

undzwar frage ich folgendermaßen meine Tabellen ab:

$result = @mysql_query("SELECT Status, Code FROM a_Benutzer WHERE ID = '1'")
Wie überprüfe ich jetzt ob $result überhaupt daten enthält, bzw. überhaupt daten abgefragt wurden ...

Bei eintragungen mach ich das so:
$sql = "UPDATE a_Online SET Letztezeit = '".time()."' WHERE BenutzerID = '".$id."'";
if (!@mysql_query($sql))
{
echo("<p>Fehler! Kann Zeit nicht updaten!</p>");
die();
}
doch da nicht mal daten wie $id vorhanden sind und allgemein keine daten in der Tabelle kann er nix abfragen. wieso wird dann die IF abfrage nicht ausgeführt???

Mfg

Chris

xabbuh
14.01.2005, 17:07:58
Die Funktion mysql_query() liefert nur dann false zurück, wenn auszuführende Abfrage syntaktisch falsch war:
Das alleine sagt jedoch überhaupt nichts über die Anzahl veränderter oder gelieferter Datensätze aus. Es ist durchaus möglich, dass eine Anfrage erfolgreich war, ohne einen einzigen Datensatz zur verändern oder zu liefern.
(http://de3.php.net/mysql_query)

Um zu überprüfen, wieviele Datensätze betroffen waren, gibt es die Funktionen mysql_num_rows() (http://www.php.net/mysql_num_rows) (bei SELECT-Abfragen), sowie mysql_affected_rows() (http://www.php.net/mysql_affected_rows) (für INSERT-, UPDATE- und DELETE-Abfragen).

ChrisE
14.01.2005, 17:25:56
Komisch ist nur das das nie der Fall ist, er zeigt einfach garnix an. nichtmal $id beinhaltet einen wert...
beim Update (UPLOAD) der daten ist es das selbe...

xabbuh
14.01.2005, 17:29:27
Original geschrieben von ChrisE
nichtmal $id beinhaltet einen wert...
Wo kommt die Variable $id denn überhaupt her?

ChrisE
14.01.2005, 19:08:13
habs in diesem beispiel jetzt durch id = 1 ersetzt.

xabbuh
15.01.2005, 00:24:21
Original geschrieben von ChrisE
habs in diesem beispiel jetzt durch id = 1 ersetzt.
Und jetzt funktioniert es?