我正在执行以下查询:
if (isset ($_POST['valider']) ){
$password=$_POST['password'];
$login=$_POST['login'];
$sql ='SELECT * FROM artisant WHERE pseudo="'.$login.'" AND password="'.$password.'"';
echo $sql;
$req = mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
$nbr = count($req);
echo $nbr;
if(empty($req)){
echo " <p>Incorrecte user name or password ! </p> ";
}
else {
while ($data = mysql_fetch_array($req)) {
$_SESSION['num']=$req['num'];
$_SESSION['prenom']=$req['prenom'];
$_SESSION['nom']=$req['nom'];
$_SESSION['mail']=$req['mail'];
$_SESSION['nbr_ventes']=$req['nbr_ventes'];
$_SESSION['CA']=$req['CA'];
}
mysql_close();
}
}
并且我传递给查询的登录名和密码不正确(它们在数据库中不存在)但是返回的结果是非空数组(查询后的req大小为1)并且到期它进入while循环,除非找到相应的登录名和密码,否则它不应该进入。
感谢您的帮助
答案 0 :(得分:0)
$req
是资源,而不是行。
$nbr = count($req);
毫无意义,请改用mysql_num_rows:
$nbr = mysql_num_rows($req);
if ($nbr == 0) {