Klein0r
Erfahrenes Mitglied
Hallo,
ich glaube ich bin gerade wirklich zu dumm! Oder geht das ganze in PHP nicht?
Folgendes Stück Quelltext:
Ausgabe:
27 und 31 sind if und elseif
So nach meinem Verständnis läuft das ganze so ab:
Falls der Query fehl schlägt liefert mysql_query false zurück und durch das doppelte & wird die zweite Bedingunge nichtmehr ausgeführt. Das dürfte aber nur passieren falls das mySQL-Statement falsch ist.
In diesem anderen Fall ist die Bedingung richtig und in $erg steht ein gültiges mySQL-Result (egal ob mit oder ohne Ergebnis). Dann könnte ich doch mit mysql_num_rows auf $erg zugreifen, oder? Aber er liefert mir immer diese Fehlermeldungen. Wie kommt es zu stande das es da zu einem Fehler kommt?! Verstehe ich nicht ganz!
Bitte helft mir auf die Sprünge.
Bin doch nicht zu doof für die einfachsten Abfragen, was?
lg
ich glaube ich bin gerade wirklich zu dumm! Oder geht das ganze in PHP nicht?
Folgendes Stück Quelltext:
PHP:
if($erg = mysql_query("SELECT id FROM tracklist_user WHERE uname = '$uname' LIMIT 1", $conn) && mysql_num_rows($erg) == 1) {
// Benutzer existiert bereits
$uid = mysql_fetch_object($erg)->id;
}
elseif ($erg_new = mysql_query("INSERT INTO tracklist_user(uname) VALUES ('$uname');", $conn) && mysql_num_rows($erg_new) == 1) {
echo 'Eingefügt';
exit;
}
else {
echo 'Allgemeiner Fehler: #0001';
exit;
}
Code:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Program Files\xampp\htdocs\main\scripts\tracklist\index.php on line 27
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Program Files\xampp\htdocs\main\scripts\tracklist\index.php on line 31
Allgemeiner Fehler: #0001
For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, mysql_query() returns a resource on success, or FALSE on error.
So nach meinem Verständnis läuft das ganze so ab:
PHP:
if($erg = mysql_query("SELECT id FROM tracklist_user WHERE uname = '$uname' LIMIT 1", $conn) && mysql_num_rows($erg) == 1) {
Falls der Query fehl schlägt liefert mysql_query false zurück und durch das doppelte & wird die zweite Bedingunge nichtmehr ausgeführt. Das dürfte aber nur passieren falls das mySQL-Statement falsch ist.
In diesem anderen Fall ist die Bedingung richtig und in $erg steht ein gültiges mySQL-Result (egal ob mit oder ohne Ergebnis). Dann könnte ich doch mit mysql_num_rows auf $erg zugreifen, oder? Aber er liefert mir immer diese Fehlermeldungen. Wie kommt es zu stande das es da zu einem Fehler kommt?! Verstehe ich nicht ganz!
Bitte helft mir auf die Sprünge.
Bin doch nicht zu doof für die einfachsten Abfragen, was?

lg