-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 に答える