Moteur de recherche

padawanphp Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
 soumia -
Bonjour .
J'ai un formulaire que voici et un script en PHP plus bas pour rechercher une photo
dans une BDD msql.
J'ai un champ "photo" oû j'ai mis l'adresse de la photo avec un champ texte et un champ "prenom".

Le problème est qu'il m'affiche bien le nombre de photos correspondant soit à l'année ou au prénom recherché mais c'est toutes les mêmes et elles n'ont rien avoir avec la recherche.
Quand je fais une recherche sur un prenom il m'affiche la premiére photo rentré dans ma base toujours la même.

Merci pour votre aide

Formulaire

CODE

<font color="ffffff">
Rechercher</font><form action="search.php" method="get">
<font color="ffffff">Rechercher par :</font>
<select name="search"><option value="prenom" selected>Prénom</option>
<!-- SI l'utilisateur veut recherche un prenom -->
<option value="année">Année</option>
<!-- Ou une année -->
</select><font color="ffffff">Recherche de :</font><input type="text" name="recherche"><br>
<!-- Input pour entrer la valeur a chercher(ici : prenom ou année) -->
<input type="submit" name="Submit" value="Rechercher"><br></form>




Script PHP


CODE

<?

//Connection MySql

$db = mysql_connect("host","login","mot de passe") or die (mysql_error());
mysql_select_db("photoperso",$db) or die (mysql_error());

$search = $_GET['search'];//Reprise des variables dans l'url
if($search == prenom){//Si dans le select la valeur prenom a été choisie
$se = prenom;//Definition de la variable $se(utilisation après)

}elseif($search == année){//Si la valeur année a été choisie
$se = année;
}else{//Si rien n'a été choisi
echo"Aucune recherche mentionnée";
}
//Requête pour aller chercher les données indiquées dans le "input" à la page formulaire.php

$req = mysql_query("SELECT * From photoperso where $se LIKE '%$recherche%' Order by id Asc ");

/*Ici on reprend la variable $se, qu'on à définit plus haut.
Cela va donner donc where prenom ou where année.
Like indique qu'on doit chercher tous les mots qui contiennent ou qui existe dans la valeur mentionnée dans l'input. ici : Like '%prenom%' par ex.
Ensuite, on va les afficher suivant l'id dans l'ordre croissant...*/

$res= @mysql_num_rows($req);

//Affichage du nombre de résultat trouvé
print 'Il y a '.$res.' résultat(s) pour '.$recherche.' ! <p>';
//Si le résultat = 0
if(!res){
echo"Il n'y a aucun résultat pour cette recherche...";
}

//Une boucle While pour afficher les données trouvées.
while( $sortie = mysql_fetch_array($req))
{

if($search ==prenom){
/*Si le membre a recherché un prenom on va
recherché la photo de ce membre dans la base de donnée "photoperso" !*/

$req1 = mysql_query("SELECT photo,prenom From photoperso where prenom='$prenom'") or die (mysql_error());
$sql1 = mysql_fetch_array($req1);
$prenom= $sql1['prenom'];
echo "<img src='$sql1[photo]'>";

}elseif($search == année){
/*Si le membre a recherché une année on va
recherché les photos correspondantes à l'année dans la base de donnée "photoperso" !*/
$req2 = mysql_query("SELECT année,photo From photoperso where année='$année'") or die (mysql_error());
$sql2 = mysql_fetch_array($req2);
$année = $sql2['année'];//Pas obligatoire
echo "<img src='$sql2[photo]'>";
}
}//fin de la boucle while
mysql_close();//Fermeture de la connexion à la base de donnée
?>

1 réponse

soumia
 
bonjour
aide moi stp

J'ai un formulaire pour rechercher et afficher la note d'un élèvedans .

programme de formulaire

<html>
<form method="POST" action="interroge.php">
<center>
<input name="nom" size="20" style="float: left"></p>
<p align="left">nom</p>
<p align="left"><input name="prenom" size="20" style="float: left">prenom</p>
<p align="left"><input name="code" size="20" style="float: left">code</p>
<input type="submit" value="Envoyer" name="envoyer">
</center>
</form>
</html>

et le programmescript php

<HTML>
<HEAD>
<TITLE>Affichage du contenu de la base</TITLE>
</HEAD>

<BODY>
<?
$db = mysql_connect('localhost', 'root', '') or die("Connection impossible : ".mysql_error());
mysql_select_db('Exercice',$db) or die("Impossible d'accéder à la BDD : ".mysql_error());
$SQL = "SELECT * FROM Eleves WHERE (nom='$nom') or (prenom='$prenom')";

$result = mysql_query($SQL) or die("La requête <BR><PRE>$SQL</PRE>a échoué : ".mysql_error());
$num = mysql_num_rows($result);
while($row = mysql_fetch_row($result))
{
echo "$_post['note']";
}
?>
</BODY>
</HTML>

mais il m'affiche toujours une erreur

stp aide moi pour trouve l'erreur
0