Warning: mysql_num_rows...

Nepheus

Erfahrenes Mitglied
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/n/np-files.de/public_html/SCHULE/php/login.php on line 20

Diese Fehlermeldung kommt immer bei meinem loginsystem. Sagt mir mal was der will?! Ich hab schon mehrere Systeme benutzt und immer sagt er das da ein Fehler ist. Ich werde so langsam verrückt damit :rolleyes:

---------------------------
Code aus login.php:
---------------------------
$result = mysql_query ($sql);

if (mysql_num_rows ($result) > 0)
---------------------------

Den Login findet ihr auf http://www.np-files.de/SCHULE/
name: webmaster
pass: test
 
ich denke deine sql abfrage ist falsch. wenn die nämlich nicht passt wird sich kein datensatz als ergebnis finden und dann ist das ganz normal
 
$sql = "SELECT ".
"id, admin_nick".
"FROM ".
"schule ".
"WHERE ".
"(admin_nick like '".$_REQUEST["admin_nick"]."') AND ".
"(admin_pass = '".md5 ($_REQUEST["admin_pass"])."')";

was is da falsch? o.O ich seh da keinen Fehler, das is aus dem tutorial kopiert...

(sry ich kenne mich nich so super toll in php aus ...)
 
Mach mal bei "id, admin_nick". noch ein Leerzeichen am Ende hinein:
Code:
 "id, admin_nick  ".

ansonsten... wie gesagt, mysql_error() verwenden:
Code:
$result = mysql_query ($sql) or die(mysql_error());
 
Nepheus hat gesagt.:
$sql = "SELECT ".
"id, admin_nick".
"FROM ".
"schule ".
"WHERE ".
"(admin_nick like '".$_REQUEST["admin_nick"]."') AND ".
"(admin_pass = '".md5 ($_REQUEST["admin_pass"])."')";

was is da falsch? o.O ich seh da keinen Fehler, das is aus dem tutorial kopiert...

(sry ich kenne mich nich so super toll in php aus ...)

PHP:
$sql = "SELECT ".
    "id, admin_nick ". // hier hat das Leerzeichen am Ende gefehlt.
  "FROM ".
    "schule ".
  "WHERE ".
    "(admin_nick like '".$_REQUEST["admin_nick"]."') AND ".
    "(admin_pass = '".md5 ($_REQUEST["admin_pass"])."')";
 
Das du sowas nicht gleich siehst ist ja regelrecht vorprogrammiert bei der doofen Query Struktur.

Bei einer "normalen" Query Struktur wäre sowas sofort aufgefallen

PHP:
$sql = 'SELECT id, admin_nick FROM schule WHERE admin_nick = "'.$_REQUEST['admin_nick'].'" AND admin_pass = "'.md5($_REQUEST['admin_pass']).'"';
 
hmmm ich glaub ich bin zu dumm, also jetzt kommt kein Fehler mehr aber er leitet nicht auf die interne seite weiter sondern leitet zurück auf die Startseite weiter...
hier mal der ganze code o.O:
Code:
<?php
session_start ();
include('datei_mit_mysqlconnectdaten.php');

$connectionid = mysql_connect($host, $user, $password);
if (!mysql_select_db ($dbname, $connectionid))
{
  die ("Keine Verbindung zur Datenbank");
}

$sql = "SELECT ".
    "id, admin_nick ".
  "FROM ".
    "schule ".
  "WHERE ".
    "(admin_nick like '".$_REQUEST["admin_nick"]."') AND ".
    "(admin_pass = '".md5 ($_REQUEST["admin_pass"])."')";
$result = mysql_query ($sql);

if (mysql_num_rows ($result) > 0)
{
  $data = mysql_fetch_array ($result);

  $_SESSION["id"] = $data["id"];
  $_SESSION["admin_nick"] = $data["admin_nick"];

  header ("Location: newseintragen.php");
}
else
{
  header ("Location: ../index.htm");
}
?>
 
Hättest du es so geschrieben wäre dir der fehler aufgefallen:

PHP:
 $sql = 
"SELECT id, admin_nick 
FROM schule
WHERE (admin_nick like '".$_REQUEST["admin_nick"]."') 
AND (admin_pass = '".md5 ($_REQUEST["admin_pass"])."')";


Nachtrag: Verdammt zu spät ;)
 
Zurück