hoi,
waarom krijg ik deze foutmelding.
lokaal werkt dit prima.
g
g

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource ...

function checkLogin($emailadres, $password)
{
$paswoord=$password; //md5($password);
$sql = "SELECT klant_id, email FROM Klanten WHERE email = '$emailadres' AND paswoord = '$paswoord'";
$result = mysql_query($sql);
$aantal = mysql_num_rows($result);
if($aantal == 1)
{
return true;
}
else
{
return false;
}
}
De ene keer schrijf je password op zijn Engels en de andere keer paswoord op zijn Nederlands. Doe ook aan errorchecking als je een query uitvoert!

edit:

Dus bijv:
$result = mysql_query($sql) or trigger_error (mysql_error ());
heb je wel een gegeven in de database zitten?
Let erop dat een Linux besturingssysteem case sensitive is, dat wil zeggen dat je moet letten op hoofdletters en kleine letters. Een variabele met de naam ditiseenvariabele is iets anders dan ditIsEenVariabele.

Op Windows is het niet hoofdlettergevoelig (maar PHP weer wel, dus mogelijk heb je hier niks aan ^^ )
<?php
function checkLogin($emailadres, $password)
{
$paswoord=$password; //md5($password);
$sql = "SELECT klant_id, email FROM Klanten WHERE email = '$emailadres' AND paswoord = '$paswoord'";
$result = mysql_query($sql);

if($result && mysql_num_rows($result) == 1)
{
return true;
}else{
return false;
}
}
?>

Voor de rest sluit ik mij aan bij Jan en Kasper.

?>
Hier hetzelfde script als van Arjan, maar dan met de variabelen in de query buiten quotes, tussen enkele quotes ( ' ) wordt niet geparsed en sql zoekt dus op een rij waarbij de inhoud van paswoord "$paswoord" is en niet gelijk aan de inhoud van $paswoord.

Probeer om deze reden altijd variabelen buiten quotes te houden. Het helpt je overigens ook nog eens bij debuggen.

<?php
function checkLogin($emailadres, $password)
{
$paswoord=$password; //md5($password);
$sql = "SELECT klant_id, email FROM Klanten WHERE email = '".$emailadres."' AND paswoord = '".$paswoord."'";
$result = mysql_query($sql);

if($result && mysql_num_rows($result) == 1)
{
return true;
}else{
return false;
}
}
?>
@robert, volgens mij tellen alleen de quotes die je gebrui,t om het begin en het einde aan te geven als 'de beslissende quote'. Dus op zich zou dat van Arjan wel werken.

@guido
Misschien is het nog even handig om te kijken naar [php]md5[/php] en [php]addslashes[/php].
Jelmer schreef op 11.05.2006 07:47
@robert, volgens mij tellen alleen de quotes die je gebrui,t om het begin en het einde aan te geven als 'de beslissende quote'. Dus op zich zou dat van Arjan wel werken.


Ik heb het even getest en je hebt gelijk, het werkt zo ook wel. De 1e reden valt dan wel weg, maar voor debuggen en dergelijke kan je op "mijn" manier veel gemakkelijker de variabelen terugvinden.
mee eens :)

Reageren