Posez votre question Signaler

Prob de débutant avec mysql_num_rows [Résolu]

nicoheaven - Dernière réponse le 12 nov. 2010 à 22:30
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
}
Lire la suite 

Prob de débutant avec mysql_num_rows »

7 réponses
Réponse
+0
moins plus
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...
Ajouter un commentaire
Réponse
+0
moins plus
<?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>");
} 
?>
Ajouter un commentaire
Réponse
+0
moins plus
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!
Ajouter un commentaire
Réponse
+0
moins plus
Comment puis-je mettre que mon problème est résolu sur ce forum?
ghuysmans99- 12 nov. 2010 à 22:30
C'est fait (lien à côté du nom du sujet)
Ajouter un commentaire
Réponse
-1
moins plus
http://www.google.fr/cse/
Ajouter un commentaire
Ce document intitulé « Prob de débutant avec mysql_num_rows » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?