Moteur de recherche

adama3636 Messages postés 69 Statut Membre -  
Alain_42 Messages postés 5413 Statut Membre -
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/>";
}

--
adama3636@hotmail.com
Configuration: Windows Vista
Internet Explorer 7.0

5 réponses

  1. okuni Messages postés 1325 Statut Membre 126
     
    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
  2. adama3636 Messages postés 69 Statut Membre
     
    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
  3. okuni Messages postés 1325 Statut Membre 126
     
    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
  4. Alain_42 Messages postés 5413 Statut Membre 904
     
    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
    1. okuni Messages postés 1325 Statut Membre 126
       
      Heu, ce n'est pas ce que j'ai dis plus haut? C'est un peu vexant je trouve.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Alain_42 Messages postés 5413 Statut Membre 904
     
    ne te vexes pas je n'avait pas vu ton post
    0