Problème formulaire de recherche

2318Ali -  
 2318Ali -
Bonjour,

J'ai une galerie d'images à réaliser. Pour ce faire j'ai donc une base de données avec plusieurs tables faite avec phpmyadmin.
A partir de là j'ai essayé de faire un formulaire dynamique de recherche simple par mot-clé.
A priori ça marche puisque j'obtiens des résultats qui s'affichent grâce aux 'echo', mais par contre le mysql_num_rows ne les prend pas en compte et indique qu'il n'y a aucun résultat, notamment pour les requêtes concernant l'auteur et le lieu.
J'avoue que je débute en php et mysql, et je ne vois pas où est le problème.
Pouvez-vous m'aider svp? C'est asse urgent, je l'avoue.
Merci d'avance.



Voilà le code du formulaire:

<form method="post" action="traitement_recherche_simple.php">

<input type="text" name="mot_cle" size="60" maxlength="50"/>

<input type="submit" value="Rechercher"/>
</form>

et celui de mon fichier de traitement:

<?php
$mot_cle=$_POST['mot_cle'];

include_once("connexion_base.php");
$connexion=mysql_connect($host,$user,$password);
$base=mysql_select_db("galerie_image",$connexion);

//on définit la variable mot-clé
$mot_cle=($_POST['mot_cle']);
$mot_cle=utf8_encode($mot_cle);
$mot_cle=utf8_decode($mot_cle);


if (($mot_cle == "")||($mot_cle == "%")) {
//Si aucun mot clé n'a été saisi, le script demande à l'utilisateur de bien vouloir préciser un mot clé

echo "Veuillez entrer un mot clé s'il vous plaît.";}


else {
// On selectionne les enregistrements contenant le mot clé quand il correspond au titre de l'image ou au lieu représenté.
$requete_simple="SELECT titre_image, rue FROM images, lieux WHERE lieux.id_lieu=images.id_lieu AND rue LIKE('%".$mot_cle."%') OR titre_image LIKE('%".$mot_cle."%')";
$resultat_simple=mysql_query($requete_simple);
while($enregistrements=mysql_fetch_array($resultat_simple))
{
$titre= $enregistrements['titre_image'];
$lieu=$enregistrements['rue'];
echo "$titre -- $lieu </BR>";
}
$nombre_image=mysql_num_rows($resultat_simple);

//sélection des enregistrements pour un mot-clé correspondant au nom de l'auteur de la photographie
$requete_simple2="SELECT titre_image, nom_auteur FROM images, auteurs, photographier WHERE photographier.id_image=images.id_image AND photographier.id_auteur=auteurs.id_auteur AND nom_auteur LIKE('%".$mot_cle."%')";
$resultat_simple2=mysql_query($requete_simple2);
while($enregistrements=mysql_fetch_array($resultat_simple2))
{
$titre= $enregistrements['titre_image'];
$nom_auteur= $enregistrements['nom_auteur'];
echo "$titre -- $nom_auteur </BR>";
}
$nombre_image=mysql_num_rows($resultat_simple2);

//sélection des enregistrements pour un mot-clé correspondant au sujet de la photographie
$requete_simple3="SELECT titre_image FROM images, lier, sujets WHERE lier.id_image=images.id_image AND lier.id_sujet=sujets.id_sujet AND sujet LIKE('%".$mot_cle."%')";
$resultat_simple3=mysql_query($requete_simple3);
while($enregistrements=mysql_fetch_array($resultat_simple3))
{
$titre= $enregistrements['titre_image'];
$sujet= $enregistrements['sujet'];
echo "$titre </BR>";
}
$nombre_image=mysql_num_rows($resultat_simple3);




// Si aucun enegistrement n'est retourné,
// on affiche un message adéquat
if ($nombre_image == "0") {
echo "<p>Aucun résultat ne correspond à votre recherche, essayez de nouveau avec la recherche avancée.</p>";
}
// Si un seul enregistrement est trouvé, on affiche un message au singulier
elseif($nombre_image == "1") {
echo "<p> Il y a une image correspondant à votre recherche</p>";}
// Dans le cas contraire le message est au pluriel...
else {echo "<p>Il y a $nombre_image image(s) correspondant à votre recherche</p>";}
}


if(!$resultat_simple)
{
echo mysql_error()."<br>";
}
mysql_close($connexion);
?>

4 réponses

giheller Messages postés 1882 Date d'inscription   Statut Membre Dernière intervention   142
 
bonjour,


il me semble que la variable $nombre_image est :
initialisée avec
$nombre_image=mysql_num_rows($resultat_simple);

puis écrasée par $nombre_image=mysql_num_rows($resultat_simple2);
et de nouveau écrasée par $nombre_image=mysql_num_rows($resultat_simple3);

donc par le nombre de titre et sujet.
nombre pour lieu et auteur ont disparus


0
2318Ali
 
Bonjour,

Merci beaucoup pour cette remarque.
Mon script fonctionne trés bien maintenant; tout est résolu.
Merci.
0
giheller Messages postés 1882 Date d'inscription   Statut Membre Dernière intervention   142
 
passer le sujet en résolu merci
0
2318Ali
 
problème résolu
0
giheller Messages postés 1882 Date d'inscription   Statut Membre Dernière intervention   142
 
certes mais il y a en haut du premier message un clic à faire
Merci
0
2318Ali
 
oui, désolée, je m'en doute mais c'est la première fois que je poste un message sur ce forum et j'avoue ne pas trop voir quoi pour marquer le sujet comme résolu.
0