Prob de débutant avec mysql_num_rows

Résolu
nicoheaven -  
ghuysmans99 Messages postés 2496 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
je débute sur php et je tente de créer un moteur de recherche pour mon site (sans succès...). J'ai suivi un tutoriel, l'ai modifié à ma sauce (la source du problème surement :). Je demande à compter les réponses positives à une recherche par la fonction mysql_num_rows et elle renvoie une erreur de type:
Warning: mysql_num_rows() expects parameter 1 to be resource, object given

Merci d'avance de votre aide!

Voici mon script:
$requete = htmlspecialchars($_POST['requete']);
$query = $bdd->query("SELECT * FROM fiches WHERE titre LIKE '%$requete%' ORDER BY id DESC") or die (mysql_error());
$nb_resultats = mysql_num_rows($query);

if($nb_resultats != 0)
{
?>
<h3>Résultats de votre recherche.</h3>
<p>Nous avons trouvé <?php echo $nb_resultats;
if($nb_resultats>1)?> {<?php echo "résultats";?> } else { <?phpecho "résultat";?> }
dans notre base de données. Voici les fiches que nous avons trouvées :<br/>
<br/>
<?php
while ($donnees = $query->fetch())
{
?>
<?php echo $donnees['titre']; ?>
<?php echo $donnees['contenu']; ?><br/>
<?php
}
$query->closeCursor();
?>
<br/>
<br/>
<a href="annuaire.php">Faire une nouvelle recherche</a></p>
<?php
}
else
{
?>
<h3>Pas de résultats</h3>
<p>Nous n'avons trouvé aucun résultat pour votre requête "<?php echo $_POST['requete']; ?>". <a href="annuaire.php">Réessayez</a> avec autre chose.</p>
<?php
}


A voir également:

6 réponses

nicoheaven
 
Merci lunebebe56 pour l'info mais je n'ai besoin que d'un code simple pour ce que je veux faire et c'est un site qui restera en local.
Mon code est vraiment simple et je pense qu'il n'y a qu'un bug et c'est ce mysql_num_rows qui me le pose...
0
Twinpics
 
Bonjour,
Modifie ton script comme ceci :
$query = $bdd->query("SELECT * FROM fiches WHERE titre LIKE '%$requete%' ORDER BY id DESC") or die (print_r($bdd->errorInfo())); // Permet d'afficher une erreur compréhensible dans la requête
$nb_resultats = $query->num_rows();

-------------------------------------------------------------------------------------------------------------------------------------------------
<* Suivez-moi sur FesseS-BouC *>
0
ghuysmans99 Messages postés 2496 Date d'inscription   Statut Contributeur Dernière intervention   340
 
<?php
$requete = htmlspecialchars($_POST['requete']);
$query = $bdd->query("SELECT * FROM fiches WHERE titre LIKE '%$requete%' ORDER BY id DESC") or die(mysql_error());
if($nb_resultats = $query->num_rows)
{
	echo("<h3>Résultats de votre recherche.</h3>\n<p>Nous avons trouvé $nb_resultats résultat", ($nb_resultats>1?"s":""), " dans notre base de données. Voici les fiches que nous avons trouvées :<br/><br/>");
	while ($donnees = $query->fetch())
		echo("<b>{$donnees['titre']}</b> &nbsp;&nbsp;{$donnees['contenu']}<br/>");
	$query->closeCursor();
	echo("<br/><br/><a href=\"annuaire.php\">Faire une nouvelle recherche</a></p>");
}
else
{
	echo("<h3>Pas de résultats</h3><p>Nous n'avons trouvé aucun résultat pour votre requête <i>{$_POST['requete']}</i> <a href=\"annuaire.php\">Réessayez</a> avec autre chose.</p>");
} 
?>
0
nicoheaven
 
Merci de votre aide, mon moteur de recherche focntionne... mais le code final est légèrement différent. Tu m'as fait réfléchir sur la fonction. Je me suis aperçu que comme je travaille sous PDO, mysql_num_rows n'était pas une fonction valide, il faut utiliser rowCount! Mission accomplie!
A bientôt pour de nouvelles découvertes!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nicoheaven
 
Comment puis-je mettre que mon problème est résolu sur ce forum?
0
ghuysmans99 Messages postés 2496 Date d'inscription   Statut Contributeur Dernière intervention   340
 
C'est fait (lien à côté du nom du sujet)
0
lunebebe56 Messages postés 181 Date d'inscription   Statut Membre Dernière intervention   10
 
-1