Problem mit mysql_num_rows

erdmaennchen

Grünschnabel
ich habe vor eine passwort abfrage zu programmieren.

ich verzweifle langsam mit einem fehler mit dem mysql_num_rows Befehl. ich habe schon ein paar mal gelesen, dass fehler bei dem befehl oft am aufruf der select anweisung liegen (fehlerhafter aufruf). ich kanns mir aber nicht vorstellen und habe mir zum testen auch schon den text anzeigen lassen und er erkennt die variablen wunderbar. also weiss ich nicht weiter :(.

die fehlermedlung:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in xxx

Der Code
Code:
<html>
<head><title>Userdaten werden überprüft</title></head>
<body>
<script language="php">

  // Vordefintion Abfragen
  $abfr_allg = "select username,passwort,admin from users where username = $user and passwort = $passwd";
  
  // Datenbank initialisieren
  $db_name = "contacts";
  $db 	   = mysql_connect();  
  $con1    = mysql_db_query($db_name,$abfr_allg);
  $num1    = mysql_num_rows(mysql_db_query($db_name,$abfr_allg));
  
  // Felder aus der Datenbank übernehmen
  for($i=0; $i < $num1; $i++)
  {
  	$user_admn = mysql_result($abfr_allg,$i,"admin");
  	$user_name = mysql_result($abfr_allg,$i,"username");
	$user_pass = mysql_result($abfr_allg,$i,"passwort");
  }	
  
  printf("<br><br>eingegeben wurde");
  printf("<br>User    : %s",$user_name);
  printf("<br>Passwort: %s",$user_pass);
  printf("<br>Admin   : %d",$user_admn);
  echo "<br>$num";
  
</script>
</body>
</html>

vielleicht weiss einer von euch etwas hilfreiches.

ich bedanke mich im vorhinein,
erdmaennchen
 
<script language="php"> <<-- ist mir neu, allerdings kann es daran liegen,dass ich seit 3 Monaten kein PHP mehr gesehen habe und etwas vergessen habe...also wenn dein Parser so etwas annimmt(was er ja anscheinend tut), bitte sehr.

Die Funktion mysql_connect erwartet zwar keine Parameter aber deine Datenbankverbindung sieht trotzdem nicht besonders sinnvoll aus, wenn du zuerst mittels connect die Verbindung herstellst und dann immer extra die _db_ Variante verwendest.

Verwende stattdessen vielleicht:
mysql_connect([string hostname[:port][:/path/to/socket] [, string Benutzername [, string Kennwort]]])

so weit es geht.
Des weiteren sehe ich bis dahin keine Fehler, vielleicht solltest du mal deinen Code in eine neue Datei kopieren und diese mit lauter Kontrollechos versehen, um zu sehen, wo welche Variable falsch oder gar nicht übergeben oder zurückgegeben wird.
Danach wirst du sicher selber auf die Lösung kommen, und wenn nicht, stehen wir dir gerne für weitere Fragen zur Verfügung.
 
probiers mal so:
PHP:
...
// Vordefintion Abfragen
  $abfr_allg = "SELECT username, passwort, admin FROM users WHERE username = '".$user."' AND passwort = '".$passwd."'";  
  // Datenbank initialisieren
  $db_name = "contacts";
  //Hier u.U. mysql_connect() mit den Parametern ("Server", "Benutzername", "Kennwort") aufrufen!
  $db 	   = mysql_connect();  
  $con1    = mysql_query($abfr_allg);
  $num1    = mysql_num_rows($con1);
...
 
Ach ja, sorry, stimmt, Strings in MySQL werden grundsätzlich in 'STRING' oder "STRING" gesetzt, was die Regel ist, die ludz angewandt hat.
Das connect könntest du trotzdem handlicher gestalten.
 
funktioniert leider immer noch nicht :(

gleiche Fehlermeldung: num rows ... zeile...

wenn ich testausgaben einbaue schauts so aus, dass die abfrage (select ...) gut aussieht aberscheinbar stolpert er über das num rows und kriegt deswegen keine daten aus der db
 
Zurück