Warning: mysql_num_rows() expects parameter 1 to be resource, bo

dproduction Messages postés 39 Statut Membre -  
dproduction Messages postés 39 Statut Membre -
Bonjour,

Je travaille sur la programmation php d'un site web
je suis confronté à un problème sur mon code de la page fonction.php.

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\exemple de moteur de recheche 0\includes\functions.php on line 25

Voici mon code PHP du fichier functions.php

Si quelqu'un pouvait m'orienter vers la solution au problème, j'en serais ravis!
  <?php  
  
    include("connect.php");
	
function results($search)
{

   $where = "";
	  $search = preg_split('/[\s,\-]/',$search);
	  
	  $count_keywords = count($search);
   
   //print_r($count_keywords);  
  
    foreach($search as $key=>$searches)
	{
	    $where .= "pageecomater_nom LIKE  '%$searches%'"; 
	    if($key != ($count_keywords-1))
	   {
	      $where .=" AND "; 
	   }
	 
	} 
   $query = mysql_query("SELECT * FROM pageecomater_nom WHERE  $where");
	$rows = mysql_num_rows($query);
	
	if($rows)
	{
	     while($article = mysql_fecth_assoc($query))
		 {
		 echo "<strong>".$article['article']."</strong><br/><u>description:</u><br/>".$article['pageecomater_contenance']."<br/>prix:".$article['pageecomater_vue'];
		 }
	}
	else
	{ echo " pas de resutat trouve..";
	
	} 	
	
	
}

 
  ?>

2 réponses

  1. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
     
    La cause la plus courante est une erreur dans la requête SQL associée, vérifiez cela.

    Petit rappel, l'extension mysql est obsolète

    J'interviens principalement en VB6 et VB.NET, avec un peu de C#, mais la modération m'amène souvent sur d'autre langages.
    En VB.NET pensez à activer "Option Explicit" et "Option Strict"
    0
    1. dproduction Messages postés 39 Statut Membre
       
      merci bien NHenry. que puis je faire maintenant?
      0
  2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    Comme te l'a indiqué Nheny, mysql est Obsolète. Il ta faut passer à PDO ou mysqli.

    Au passage ... pour générer ton WHERE, tu peux procéder comme ceci :
     $search = preg_split('/[\s,\-]/',$search);  
       
      $arrWhere = array();   
      foreach($search as $key=>$searches) {
        $arrWhere[] = "pageecomater_nom LIKE  '%$searches%'"; ; 
      }
     
     $where = !empty($arrWhere) ? " WHERE ". join(' AND ',$arrWhere) : "";  
      
     $sql = "SELECT * FROM pageecomater_nom $where"
    
     //A remplacer par du PDO ou mysqli quand tu auras changé ton code...  
      $query = mysql_query($sql) or die(' ERREUR dans la requête ' . mysql_error() );
      $rows = mysql_num_rows($query);
    
    


    Cordialement, 
    Jordane                                                                 
    0
    1. dproduction Messages postés 39 Statut Membre
       
      merci jordane45. je me met boulot tout de suite et je vous reviens
      0
    2. dproduction Messages postés 39 Statut Membre
       
      j'ai travaillé avec le code jordane45. et j'ai un petit probleme. je suis noviste en php. je n'arrive pas a bien manipuler le PDO ou mysqli. de ce fait, je n'arrive pas faire les consigne de jordane45

      //A remplacer par du PDO ou mysqli quand tu auras changé ton code...  
        $query = mysql_query($sql) or die(' ERREUR dans la requête ' . mysql_error() );
        $rows = mysql_num_rows($query);
      


      aide svp
      0
    3. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Qu'as tu essayé ?
      Montre ton code
      0
    4. dproduction Messages postés 39 Statut Membre
       
      voici mon code
        <?php  
        
          include("connect.php");
      	
      function results($search)
      {
      
         $where = "";
      	  $arrWhere = array();   
        foreach($search as $key=>$searches) {
          $arrWhere[] = "pageecomater_nom LIKE  '%$searches%'"; ; 
        }
       
       $where = !empty($arrWhere) ? " WHERE ". join(' AND ',$arrWhere) : "";  
        
       $sql = "SELECT * FROM pageecomater_nom $where"
      
       //A remplacer par du PDO ou mysqli quand tu auras changé ton code...  
        $query = mysql_query($sql) or die(' ERREUR dans la requête ' . mysql_error() );
        $rows = mysql_num_rows($query);
      
      
      	
      	if($rows)
      	{
      	     while($article = mysql_fecth_assoc($query))
      		 {
      		 echo "<strong>".$article['article']."</strong><br/><u>description:</u><br/>".$article['pageecomater_contenance']."<br/>prix:".$article['pageecomater_vue'];
      		 }
      	}
      	else
      	{ echo " pas de resutat trouve..";
      	
      	} 	
      	
      	
      }
      
       
        ?>




      j'ai aussi mon fichier de connexion connect.php
      code
      <?php 
      
      
      mysql_connect('localhost','root','');
      mysql_select_db("edb_recheche");
      mysql_query('SET NAMES utf8');
      
      
      
      
       ?>
       
       
       
      0
    5. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Où est la transformation en mysqli ou pdo ?
      0