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. 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 ";
    }
    }
    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. 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. 'ai essayé avec ta correction mais il m'affiche tjrs le même erreur :(
        1. 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 :(