Moteur de recherche

Fermé
adama3636 Messages postés 67 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 20 octobre 2011 - 9 avril 2009 à 17:55
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 10 avril 2009 à 18:10
Bonjour,

Je voudrai savoir si la syntaxe suivante est bonne pour une recherche de membre dans un site web de rencontre(je me suis deja connecte a la base):

$reponse=mysql_query("SELECT * FROM etudiants WHERE $nom OR $prenom OR $nom_filiere OR $annee_promo OR $niveau_promo") die("La requête <BR><PRE>$SQL</PRE>a échoué : ".mysql_error());
while($donnees=mysql_fetch_array($reponse))
{
echo $donnees['nom']."<br/>";
echo $donnees['prenom']."<br/>";
echo $donnees['nom_filiere']."<br/>";
echo $donnees['annee_promo']."<br/>";
echo $donnees['niveau_promo']."<br/>";
echo $donnees['profession']."<br/>";
}
A voir également:

5 réponses

okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 126
9 avril 2009 à 18:03
essaye d'utiliser where like '%%' avec le like et les %, ta recherche sera moins précise et donnera plus de résultat.
par exemple si tu cherche "jour"
la requete enverra (si c'est dans la table évidemment :p)
jour
bonjour
journée
etc

EDIT : je pense que si une de tes variable par exemple $prenom ne contient rien, cela donnera "$nom OR OR $..." et il y aura une erreur mais a vérifier !
a+
0
adama3636 Messages postés 67 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 20 octobre 2011
9 avril 2009 à 19:30
j'ai aissaye de le remplacer et ca ma donner

$reponse=mysql_query("SELECT * FROM etudiants WHERE nom='$nom' LIKE '%$nom%' OR prenom='$prenom' LIKE '%$prenom%' OR nom_filiere='$nom_filiere' LIKE '%$nom_filiere%' OR annee_promo='$annee_promo' LIKE '%annee_promo%' OR niveau_promo='$niveau_promo' LIKE '%$niveau_promo%'") die("La requête <BR><PRE>$SQL</PRE>a échoué : ".mysql_error());
while($donnees=mysql_fetch_array($reponse))
{
echo $donnees['nom']."<br/>";
echo $donnees['prenom']."<br/>";
echo $donnees['nom_filiere']."<br/>";
echo $donnees['annee_promo']."<br/>";
echo $donnees['niveau_promo']."<br/>";
echo $donnees['profession']."<br/>";
}

mais ca me donne toujours l'erreur : Parse error: parse error in c:\program files\easyphp1-8\www\licence2teleinf\rencontre.com\script_rechercher_1.php on line 9 ( la ligne commencant par "$reponse=mysql_query("SELECT ...")
0
okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 126
10 avril 2009 à 09:59
ok,
alors dabord le where like s'utilise comme ceci
WHERE nom LIKE '%$nom%' OR LIKE ...
Tu ne doit pas mettre de valeur entre where et like ;)

ensuite, mais un "or" juste avant ton die("La requête <BR><PRE>$SQL</PRE>a échoué : ".mysql_error())
Ou enlève le, chez moi, parfois c'est ça qui faisait planter le code.

Pour "LIKE '%annee_promo%'" tu n'a pas mi annee_promo en variable, c'est normal?

Je pense que ça devrait aller après ça.
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
10 avril 2009 à 12:06
tu ne peux pas mettre dans ton WHERE à la fois = et LIKE pour un même champ ou alors il faut faire un autre OR

et il faut or die et pas die (si la requeette ne fonctionne pas on fait die)

et dans ta trace d'erreur tu mets $SQL où est cette variable ?

fais comme ça:

$SQL="SELECT * FROM etudiants WHERE nom LIKE '%$nom%' OR prenom LIKE '%$prenom%' OR nom_filiere LIKE '%$nom_filiere%' OR annee_promo LIKE '%annee_promo%' OR niveau_promo LIKE '%$niveau_promo%'"; 
$reponse=mysql_query($SQL) or die("La requête <BR><PRE>$SQL</PRE>a échoué : ".mysql_error()); 


saches tout de même que avec LIKE tu sortira tous les enregistrements "approchants"
0
okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 126
10 avril 2009 à 12:11
Heu, ce n'est pas ce que j'ai dis plus haut? C'est un peu vexant je trouve.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
10 avril 2009 à 18:10
ne te vexes pas je n'avait pas vu ton post
0