Mysql_num_rows() expects parameter 1 to be resource

Bonjour,
l'erreur
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\www\recherche\function.php on line 20

si le code
$query=mysql_query('SELECT * FROM ouvrage WHERE $ou');
$rows=mysql_num_rows($query);
if($rows)
{
echo $rows;
}

2 réponses

  1. Bonjour,

    mysql_query te retourne un boolean au lieu d'une ressource.
    Il retourne "false" car il y a une erreur dans la requête.
    Tu as mis des quotes simples au lieu de guillemets, la variable$ou n'est donc pas remplacée dans la requête :

    $query=mysql_query("SELECT * FROM ouvrage WHERE $ou");  
    1. merrrrrrrrrrrrrrrci beaucoup le programme est ça marche
    2. De rien ;)
    3. bonjour
      le programme est ça marche pour recherche un seul mot mais je faire une recherche pour deux mot affiche le même erreur

      Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\www\recherche\function.php on line 20

      si le code source
      }

      $query=mysql_query("SELECT * FROM ouvrage WHERE $ou");
      $rows=mysql_num_rows($query);
      if($rows)
      {
      while ($row=mysql_fetch_assoc($query))
      {
      echo $row['titre']."<br/><strong>".$row['auteurID']."</strong><br/>";
      }
      }else echo"Pas de résultat pou votre recherche".$searches;
      }
    4. Bonjour, que contient $ou ? Le problème vient de là.
    5. merci ^^
      mais je ne trouve pas la solution :'(
  2. Hello,

    Ta requête ne fonctionne pas. Que donne un echo "SELECT * FROM ouvrage WHERE $ou";

    ?

    Que contient ta variable $ou ? le souci vient de là ou alors de la table "ouvrage" qui n'existe pas ou qui n'est pas accessible.

    Regarde ce cours sur la concaténation des variables en PHP : https://www.vulgarisation-informatique.com/variables-constantes.php
    1. merci beaucoup
      si le code source pour la fonction svp aide moi
      le programme est ça marche pour recherche un seul mot mais pour plusieurs mot a fiche (pas de résultat )
      <?php
      include('bdd.php');

      function resultat_recherche($search)
      {
      $ou="";
      $search=preg_split('/[\s]+/',$search);

      $total_resultat=count($search);
      foreach($search as $key=>$searches)
      {
      $ou.= "titre LIKE '%$searches%'";
      if($key!=($total_resultat-1))
      {
      $ou.='AND';
      }
      }

      $query=mysql_query("SELECT * FROM ouvrage WHERE $ou");
      $rows=mysql_num_rows($query);
      if($rows)
      {
      while ($row=mysql_fetch_assoc($query))
      {
      echo $row['titre']."<br/><strong>".$row['auteurID']."</strong><br/>";
      }
      }else echo"<h6>Pas de résultat pou votre recherche </h6>".$searches;
      }
      ?>