Pb d'affichage d'une condition en php

Résolu/Fermé
sopra74 Messages postés 22 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 1 juillet 2008 - 30 juin 2008 à 20:50
sopra74 Messages postés 22 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 1 juillet 2008 - 1 juil. 2008 à 05:13
Bonjour à tous,

Voilà je vous expose mon souci. J'ai ci dessous un fichier result.php qui me permet de recupérer une variable tapée dans un formulaire et d'interroger ma bdd.

Le traitement des données:

- verification de la présence d'un mot dans la requete. Cette fonction ne pose pas de pb et le message d'erreur s'affiche correctement.

- interrogation de la base et comptage du nombre de réponses envoyées. Si le nombre est supérieur à zero, cela affiche normalement les resultats. Là aussi ça fonctionne.

Par contre mon problème arrive lorsqu'aucune reponse n'est trouvée: le message avertissant l'utilisateur ne s'affiche pas.

Merci par avance de votre aide.

Ci-dessous le fichier result.php:


<?php

/*Connexion au fichier base*/
include_once('base.php');

/*Récupération du mot recherché*/
$mot = $_POST['mot'];

/*Vérification de la présence d'un mot et message erreur si absence*/

if($mot == '')
{
echo ("Vous devez saisir un mot clé.");
exit();
}

/*SI UNE REQUETE EST PRESENTE*/

/*Selection de la requête*/
$reponse=mysql_query("SELECT * FROM table WHERE titre LIKE '$mot'
OR texte LIKE '$mot'
ORDER BY date");

/*Comptage du nombre de réponses*/
$nb_reponse = count($reponse);

/*Si réponse trouvée dans la base de données*/
if ($nb_reponse != 0)
{

/*Boucle et affichage des résultats :*/
while ($donnees = mysql_fetch_array($reponse) )
{

?>

<b>Titre:</b>
<?php
echo $donnees['titre'];
echo "<br />";
?>

<b>Texte:</b>
<?php
echo $donnees['texte'];
echo "<br />";

}

}

/*Si aucune réponse trouvée*/
else
{
echo ("Aucun résultat ne correspond à votre recherche.");
}

/* Déconnexion de MySQL */
mysql_close();
?>
A voir également:

2 réponses

hamed01 Messages postés 207 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 22 juillet 2011 24
30 juin 2008 à 21:36
je m'y connai pas trop en php mais remplace le bout de code


/*Boucle et affichage des résultats :*/
while ($donnees = mysql_fetch_array($reponse) )
{

?>

<b>Titre:</b>
<?php
echo $donnees['titre'];
echo "<br />";
?>

<b>Texte:</b>
<?php
echo $donnees['texte'];
echo "<br />";

}





par cet bout de code :





/*Boucle et affichage des résultats :*/
while ($donnees = mysql_fetch_array($reponse) )
{

?>

<b>Titre:</b>
<?php
echo $donnees['titre'];
echo "<br />";
?>

<b>Texte:</b>
<?php
echo $donnees['texte'];
echo "<br />";
?>
}
0
sopra74 Messages postés 22 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 1 juillet 2008 1
30 juin 2008 à 22:05
Merci de ton aide mais toujours pas de résultat.
0
sopra74 Messages postés 22 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 1 juillet 2008 1 > sopra74 Messages postés 22 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 1 juillet 2008
1 juil. 2008 à 02:43
J'ai retourné le code dans tous les sens mais toujours ce bug. J'ai essayé d'inverser la requête en commençant par le cas ou justement aucune réponse n'est renvoyée de la base mais ça ne change rien.

Il doit probablement me manquer des conditions dans l'interprétation du comptage des réponses.

5 jours que j'ai commencé le php...dur dur...
0
sopra74 Messages postés 22 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 1 juillet 2008 1
1 juil. 2008 à 05:13
Ca y est j'ai trouvé l'erreur. Je vous en fait part si ça peut servir à quelqu'un:

j'utilisais à tort la fonction count pour le comptage des réponses renvoyées au lieu de la fonction mysql_numrows que je connaissais pas.

Je vais enfin pouvoir aller me coucher...lol...bonne nuit
0