Mysql_num_rows error
Ik ben bezig met een inlogsysteem, maar als ik wil inloggen dan geeft hij een error, namelijk:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /mnt/web7/43/86/51772786/htdocs/login.php on line 97
Dit snap ik totaal niet. Mn stukkie code is:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
$row = mysql_query("SELECT * FROM teams WHERE naam = $username AND password = $pass1");
if (mysql_num_rows($query) == 1){ //dit is regel 97
print "Je bent ingelogd als " . $username . ".";
$row = mysql_fetch_assoc($query);
$username = mysql_real_escape_string($username);
$_SESSION['login']=true;
$_SESSION["naam"]=$username;
$_SESSION['rank'] = $row['status'];
}
else{
print "<font size=1 face=verdana>De combinatie gebruikersnaam/wachtwoord is niet juist.";
}
?>
$row = mysql_query("SELECT * FROM teams WHERE naam = $username AND password = $pass1");
if (mysql_num_rows($query) == 1){ //dit is regel 97
print "Je bent ingelogd als " . $username . ".";
$row = mysql_fetch_assoc($query);
$username = mysql_real_escape_string($username);
$_SESSION['login']=true;
$_SESSION["naam"]=$username;
$_SESSION['rank'] = $row['status'];
}
else{
print "<font size=1 face=verdana>De combinatie gebruikersnaam/wachtwoord is niet juist.";
}
?>
Hoezo niet geldig, en wat kan ik eraan doen om hem weer werkend te maken? Alvast bedankt!
Mike,
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$rQueryResult = mysql_query("SELECT * FROM teams WHERE naam = $username AND password = $pass1");
if( $rQueryResult === false )
{
die('Query Error');
}
if (mysql_num_rows($rQueryResult) == 1){ //dit is regel 97
// rest
?>
$rQueryResult = mysql_query("SELECT * FROM teams WHERE naam = $username AND password = $pass1");
if( $rQueryResult === false )
{
die('Query Error');
}
if (mysql_num_rows($rQueryResult) == 1){ //dit is regel 97
// rest
?>
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
Wat denk je daar mee te bereiken? Helemaal omdat je de query dan al hebt uitegevoerd en dit resultaat in een sessie gaat zetten. Dit is het bekende paard achter de wagen spannen, daar win je geen wedstrijden mee.
Edit: Ik vrees het ergste voor deze vacature... Wat voor puinhopen staan er in de code?
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Edit: Ik krijg nu "Query error", en als ik mysql error reporting aanzet dan komt er te staan: query was empty. Dit is de code die ik nu heb:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
include('connect.php');
$pass1 = md5($pass1);
$rQueryResult = mysql_query("SELECT * FROM teams WHERE naam = $username AND password = $pass1");
$query = mysql_query($rQueryResult)or die(mysql_error());
if (mysql_num_rows($query) == 1){ //dit is regel 97
print "Je bent ingelogd als " . $username . ".";
$row = mysql_fetch_assoc($query);
$username = mysql_real_escape_string($username);
$_SESSION['login']=true;
$_SESSION["naam"]=$username;
$_SESSION['rank'] = $row['status'];
}
else{
print "<font size=1 face=verdana>De combinatie gebruikersnaam/wachtwoord is niet juist.";
}
?>
include('connect.php');
$pass1 = md5($pass1);
$rQueryResult = mysql_query("SELECT * FROM teams WHERE naam = $username AND password = $pass1");
$query = mysql_query($rQueryResult)or die(mysql_error());
if (mysql_num_rows($query) == 1){ //dit is regel 97
print "Je bent ingelogd als " . $username . ".";
$row = mysql_fetch_assoc($query);
$username = mysql_real_escape_string($username);
$_SESSION['login']=true;
$_SESSION["naam"]=$username;
$_SESSION['rank'] = $row['status'];
}
else{
print "<font size=1 face=verdana>De combinatie gebruikersnaam/wachtwoord is niet juist.";
}
?>
Hoe kan ik het (eindelijk) werkend laten maken?:)
@pgFrank,
Dit is een script die ergens al op internet staat en is aangepast door mij.
Gewijzigd op 01/01/1970 01:00:00 door Mike vd Veer
Code (php)
1
2
3
4
2
3
4
<?php
$row = mysql_query("SELECT * FROM teams WHERE naam = $username AND password = $pass1");
if (mysql_num_rows($query) == 1){ //dit is regel 97
?>
$row = mysql_query("SELECT * FROM teams WHERE naam = $username AND password = $pass1");
if (mysql_num_rows($query) == 1){ //dit is regel 97
?>
Je maakt $row aan, maar gebruikt daarna $query? Ik denk dat het allebei een van beiden moet zijn :)
Je gebruikt zoals DouweI zegt niet dezelfde variable, dit moet of beide $row zijn of $query. Maar niet verschillend
En als je dan ook nog eens rekening houdt met de naamgeving, gebruik je geen van beide. De functie mysql_query() levert je een resultaat set, de variabele $result zou hier dus veel meer op zijn plaats zijn.
Zie mn edit:-)
Mike vd Veer schreef op 24.04.2008 23:39:
Zie mn edit:-)
Code (php)
1
2
3
4
2
3
4
<?php
rQueryResult = mysql_query("SELECT * FROM teams WHERE naam = $username AND password = $pass1");
$query = mysql_query($rQueryResult)or die(mysql_error());
?>
rQueryResult = mysql_query("SELECT * FROM teams WHERE naam = $username AND password = $pass1");
$query = mysql_query($rQueryResult)or die(mysql_error());
?>
Eerst ga je een query uitvoeren en vervolgens ga je het resultaat daarvan weer als query uitvoeren? Niet echt logisch lijkt me...