Irgendwas ist hier falsch... MySql

zigomeier

Mitglied
Hier ist die Fehlermeldung:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/www/web56/html/skins/originalb2/_main.php on line 67

Und hier der Quelltext:
PHP:
// Session starten
  	session_start ();
  	
  	// Datenbankverbindung aufbauen
  	$connectionid = mysql_connect ("localhost", "web56", "eve1211line");
  	if (!mysql_select_db ("usr_web56_1", $connectionid))
  	{
  	  die ("Keine Verbindung zur Datenbank");
  	}
  	
  	$sql = "SELECT ".
  		"Id, Nickname, Nachname, Vorname ".
  	  "FROM ".
  		"benutzerdaten ".
  	  "WHERE ".
  		"(Nickname like '".$_REQUEST["name"]."') AND ".
  		"(Kennwort = '".md5 ($_REQUEST["pwd"])."')";
  	$result = mysql_query ($sql);
  	
  	if (mysql_num_rows ($result) > 0)
  	{ 
  	  // Benutzerdaten in ein Array auslesen.
  	  $data = mysql_fetch_array ($result);
  	
  	  // Sessionvariablen erstellen und registrieren
  	  $_SESSION["user_id"] = $data["Id"];
  	  $_SESSION["user_nickname"] = $data["Nickname"];
  	  $_SESSION["user_nachname"] = $data["Nachname"];
  	  $_SESSION["user_vorname"] = $data["Vorname"];
  	
  	  header ("Location: index.php");
  	  };}


Kann mir Bitte jemand helfen....

DANKE
 
Das Query ist warscheinlich falsch. Am besten du gibst das Query mal aus:
PHP:
echo $sql;
und kontrollierst es mal. Wenn du immer noch keinen Fehler findest dann öffne PHPMyAdmin und gib das Query dort ein, dann bekommst du eine detailliertere Fehlermeldung :D
 
Das hab ich rausgefunden danke!

Aber jetzt hab ich das Problem das meine $_SESSION... Variablen leer bleiben wiso das?

PHP:
$result = mysql_query ($sql);
 	
 	if (mysql_num_rows ($result) > 0)
 	{ 
 	  // Benutzerdaten in ein Array auslesen.
 	  $data = mysql_fetch_array ($result);
 	
 	  // Sessionvariablen erstellen und registrieren
 	  $_SESSION["user_id"] = $data["Id"];
 	  $_SESSION["user_nick"] = $data["Nickname"];
 	  $_SESSION["user_name"] = $data["Name"];
 	  $_SESSION["user_email"] = $data["email"];
 	
 	  };
 
hab ich jetzt hab ich aber gemerkt das die variable $data["Nickname"] auch leer ist wiso das?

wenn ich $result ausgebe bekomme ich
Resource id #75
 
1. Es gibt keinen Danensatz --> Die Sessions werden nicht geschrieben
2. Es gibt keinen Nickname zum Datensatz --> Die Session wird auch nicht geschrieben

Hast du zu oberst im File ein session_start() drin sollte es eigentlich gehen. Sind alle Daten aus der DB leer, oder nur der Nickname?
 
Ja ist drinne:

PHP:
<?php
 	
 	// Datenbankverbindung aufbauen
 	$connectionid = mysql_connect ("localhost", "web56", "eve1211line");
 	if (!mysql_select_db ("usr_web56_1", $connectionid))
 	{
 	  die ("Keine Verbindung zur Datenbank");
 	}
 	
 	$sql = "SELECT ".
 		"Id, Nickname, Name, email ".
 	  "FROM ".
 		"benutzerdaten ".
 	  "WHERE ".
 		"(Nickname like '".$_REQUEST["name"]."') AND ".
 		"(Kennwort = '".md5 ($_REQUEST["pwd"])."')";
 	$result = mysql_query ($sql);
 	if (mysql_num_rows ($result) > 0)
 	{ 
 	  //Session Starten
 	  session_start();
 	
 	  // Benutzerdaten in ein Array auslesen.
 	  $data = mysql_fetch_array ($result);
 	
 	  // Sessionvariablen erstellen und registrieren
 	  $_SESSION["user_id"] = $data["Id"];
 	  $_SESSION["user_nick"] = $data["Nickname"];
 	  $_SESSION["user_name"] = $data["Name"];
 	  $_SESSION["user_email"] = $data["email"];
 	
 	  };?>

Die DB enthält die daten und ja es sind alle daten leer
 
Und wenn du in PHPMyAdmin die gleiche Abfrage machscht? Das ist nicht möglich dass alle Daten leer sind, dann hast du einen leeren Datensatz, und wenn das so wäre dann würde deine Signatur nicht ganz stimme ;) hihi

Gib mal in der if-Bedingung etwas aus z.b.
PHP:
echo "test";
macht er das? Oder gibst er nichts aus?
 
Zurück