Prob de débutant avec mysql_num_rows
Résolu
nicoheaven
-
ghuysmans99 Messages postés 2496 Date d'inscription Statut Contributeur Dernière intervention -
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
}
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:
- Prob de débutant avec mysql_num_rows
- Logiciel de programmation pour débutant - Guide
- Logiciel montage vidéo débutant - Guide
- Debut logiciel de capture video - Télécharger - TV & Vidéo
- Apprendre le coran pour débutant (+ pdf) - Télécharger - Histoire & Religion
- Platine dj debutant - Forum Enregistrement / Traitement audio
6 réponses
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...
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...
Bonjour,
Modifie ton script comme ceci :
-------------------------------------------------------------------------------------------------------------------------------------------------
<* Suivez-moi sur FesseS-BouC *>
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 *>
<?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> {$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>"); } ?>
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!
A bientôt pour de nouvelles découvertes!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question