Probléme PHP

Bonjour ,
j'ai la page index quand j'ai rentré le login et le password pour aller à l'autre page il m'affiche cet erreur "Fatal error: Call to undefined method mysqli_result::rowcount() in C:\wamp\www\User\index.php on line 7"
voilà le code je sais pas comment corriger l'erreur , quelqu'un peut m'aider svp.
<?php
$msg="";
if(isset($_POST['connect'])){
require_once('dbconnect.php');
$sql="SELECT * FROM utilisateur WHERE login='".$_POST['login']."' AND password='".$_POST['password']."' ";
$requete = $db->query($sql);
$nb_reponses=$requete -> rowcount(); // ligne 7
if($nb_reponses ==1){
$donnees=$requete->fetch();
session_start();
$_SESSION['id_utilisateur']=$donnees['id_utilisateur'];
header('Location:scenari_utilisateur.php');
}else{
$msg="Erreur Login / mdp ";
}
}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
<head>
<title>ESPACE PRIVE </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form name="form_login" method="post" action="">
Login: <input type="text" name="login" value="" /><br />
mdp: <input type="text" name="password" value="" /><br />
<?php
if($msg!="") echo '<font color="red">'.$msg.'</font><br />';
?>
<input type="submit" name="connect" value="Se connecter" /><br />
</form>
</body>
</html>

5 réponses

  1. Merci pour vos aide , c'est bon j'ai trouvé l'erreur :)
    1. Surtout, ne dis pas ce que tu as fait, ça risquerait de servir à quelqu'un d'autre.
  2. D'apres moi l'erreur est la suivante :

    $req->rowCount(

    $nb_reponses=$requete -> rowCount(); // oubli de la majuscule

    apres il est possible qu'elle prenne en parametre la requete :

    $nb_reponses=$requete ->rowCount($sql);

    a verifier

    Mais c'ets surtout l'oubli de la majuscule a Count qui crée l'erreur d'apres moi
    1. j'ai essayé avec ta correction mais il m'affiche tjrs le même erreur :(
  3. 'ai essayé avec ta correction mais il m'affiche tjrs le même erreur :(
    1. Bonjour

      Je n'ai pas l'habitude d'utiliser Mysqli, mais comme le message te le dit, la fonction mysqli_result::rowcount() n'existe pas : il suffit de le vérifier dans le manuel.
      Où es-tu allé chercher cette fonction ?

      Je suppose que ce que tu cherches est celle-ci mais lis bien la doc, elle ne fait peut-être pas toujours exactement ce que tu veux. Tu as probablement intérêt à utiliser un SELECT COUNT pour connaître de manière sûre le nombre de réponses.
      1. j'ai changé $nb_reponses=$requete ->rowCount($sql); par
        $row_cnt = mysqli_num_rows($requete);
        et j'annuler cette ligne //$donnees=$requete->fetch_row();
        voilà le code ça marche

        <?php
        $msg="";
        if(isset($_POST['connect'])){
        require_once('dbconnect.php');
        $sql="SELECT * FROM utilisateur WHERE login='".$_POST['login']."' AND password='".$_POST['password']."' ";
        echo $sql ;
        $requete = $db->query($sql) ;
        //$nb_reponses=$requete ->rowCount($sql);
        $row_cnt = mysqli_num_rows($requete);
        if($row_cnt ==1){
        //$donnees=$requete->fetch_row();
        session_start();
        $_SESSION['id_utilisateur']= 'id_utilisateur';
        header('Location:scenari_utilisateur.php');
        }else{
        $msg="Erreur Login / mdp ";
        }
        }