Menu

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

dproduction 25 Messages postés lundi 2 juillet 2012Date d'inscription 8 février 2018 Dernière intervention - 14 janv. 2018 à 17:00 - Dernière réponse : dproduction 25 Messages postés lundi 2 juillet 2012Date d'inscription 8 février 2018 Dernière intervention
- 18 janv. 2018 à 20:27
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..";
	
	} 	
	
	
}

 
  ?>
Afficher la suite 

Votre réponse

11 réponses

NHenry 14203 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 17 juin 2018 Dernière intervention - Modifié par NHenry le 14/01/2018 à 17:07
0
Merci
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"
dproduction 25 Messages postés lundi 2 juillet 2012Date d'inscription 8 février 2018 Dernière intervention - 14 janv. 2018 à 17:14
merci bien NHenry. que puis je faire maintenant?
Commenter la réponse de NHenry
jordane45 21414 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 19 juin 2018 Dernière intervention - Modifié par jordane45 le 14/01/2018 à 17:46
0
Merci
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                                                                 
jordane45 21414 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 19 juin 2018 Dernière intervention - 14 janv. 2018 à 18:46
Qu'as tu essayé ?
Montre ton code
dproduction 25 Messages postés lundi 2 juillet 2012Date d'inscription 8 février 2018 Dernière intervention - 14 janv. 2018 à 18:50
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');




 ?>
 
 
 
jordane45 21414 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 19 juin 2018 Dernière intervention - 14 janv. 2018 à 20:12
Où est la transformation en mysqli ou pdo ?
jordane45 21414 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 19 juin 2018 Dernière intervention - 14 janv. 2018 à 20:14
Et au passage ... même si ce n'est pas une obligation.. cela reste quand même une norme.
Un bloc IF ( ou IF/ELSE.. ) s'écrit comme ceci :
<?php
if ($expr1) {
    // if body
} elseif ($expr2) {
    // elseif body
} else {
    // else body;
}



Norme PSR disponible ici :
http://www.php-fig.org/psr/psr-2/

.
dproduction 25 Messages postés lundi 2 juillet 2012Date d'inscription 8 février 2018 Dernière intervention - 18 janv. 2018 à 20:27
merci pour tous les conseils. je me met tout de suite l'ecole de mysqli et PDO
Commenter la réponse de jordane45