-1

我正在执行以下查询:

    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循环,除非找到相应的登录名和密码。

感谢您的帮助

4

1 回答 1

0

$req是资源,而不是行。

$nbr = count($req);没有意义,请改用mysql_num_rows

$nbr = mysql_num_rows($req);
if ($nbr == 0) {
于 2012-09-18T15:02:01.267 回答