Forum Clubic

Poblème Création d'un petit module recherche

Bonjour,
Voila comme dit dans le titre j’essaye de créer un petit module de recherche très simple.
Je débute un peu en php donc je rencontre quelque difficulté.

Donc j’ai pensé à quelques chose qui est peut être bon ou pas bon mais je n’arrive pas à l’appliquer. Je m’explique avec le code:

<?php mysql_connect("localhost", "root", "xxx"); mysql_select_db("nom_db"); echo " "; $reponse = mysql_query("SELECT * FROM lien_film WHERE titre='$titre' "); while ($donnees = mysql_fetch_array($reponse) ) { ?>

<?php echo $donnees['titre']; ?>

<?php } ?>

Le but étant de trouvé un film répertorié dans ma base de donnée en entrant le titre dans le petit formulaire.
Donc dans un premier temps, on remplie le formulaire qui ne comporte qu’un seul champ: titre.

Si je suis mon idée , je voudrais que le titre écris et recherché par l’utilisateur soit égal à $titre

et ensuite je fini par recherché le titre = $titre dans ma base de donnée correspondant.

Mais je en vois pas ou ça bloque en faite.

Merci d’avance de votre aide.

PS: Je commence seulement par chercher le titre dans une seul base de donné mais mon but final et de faire en sorte de choisir de rechercher un titre dans la base de donné 1 ou 2 ( choix que l’on pourra faire avec un menu déroulant ) Donc si vous avez des idées n’hésitez surtout pas svp

Ta recherche se fera sur le titre exact.

Tu as deux choix :

  • continuer avec like, $reponse = mysql_query(“SELECT * FROM lien_film WHERE titre=’%” . mysql_real_escape_string($titre) . "%’ "); mais en utilisant % pour les jokers (j’ai mis mysql_real_escape_string pour t’éviter des injections SQL)

  • utiliser les index FULLTEXT, qui seront plus efficaces - voir la doc de mySQL à ce sujet.

Voila j’ai presque réussi mais par contre la recherche se fait par titre exacte comme tu as pu me prévenir. Au lieu de prendre tout les titre contenant le mot-clé marqué. Et de plus, ça ne trouve qu’un seul film sur les 41 que j’ai entré ( je les ai pas tous essayé bien sur )

<?php mysql_connect("localhost", "root", "xxxx"); mysql_select_db("NomBdd"); echo " "; $titre = $_POST['titre']; $reponse = mysql_query("SELECT * FROM lien_film WHERE titre='$titre' "); while ($donnees = mysql_fetch_array($reponse) ) { ?>

<?php echo $donnees['titre']; ?>

<?php } ?>

Ce code est donc presque achevé non ? mais il manquequelque truc. Saurais-tu me dire quoi ?


Rectification : Ca ne trouve que les films écrit seulement en lettre ( sans chiffre ) et en un seul mot.

Dans ton code tu utilises toujours pas les jokers ??? (%)

$reponse = mysql_query("SELECT * FROM lien_film WHERE titre=’%$titre%’ ");

de plus tu devrais vraiment utiliser la fonction mysql_real_escape_string() que Sans-nom t’a conseillé !!!

Je viens de te le dire hein, je peux pas être plus précis là :slight_smile:

Merci à vous problème résolu

Erf dernière question : Comment affiché la liste des film au debut ( ca je sais faire ) et faire en sorte quel se retire apres une recherche. En gros, lancer une recherche au demarrage de la page comprenant tout les films.