IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Recherche plusieurs mots dans un champ


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Recherche plusieurs mots dans un champ
    Bonjour/Bonsoir.

    Voila, je me créé un site pour avoir une liste des films que j'ai déjà vu.
    J'ai un formulaire en php pour insérer le titre, la date..... dans la BDD et tout marche bien.

    Par contre c'est un peu plus compliqué avec la recherche.
    Mon code est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <?php
     
    mysql_connect("xxx", "xxx", "xxxx");
    mysql_select_db("films");
     
     $search = mysql_real_escape_string(htmlspecialchars($_POST['search']));
     
    $reponse = mysql_query("SELECT * FROM films WHERE Titre_film = '$search'");
     mysql_close();
    while ($donnees = mysql_fetch_array($reponse) )
    {
    ?>
     
    <p>
    <strong><?php echo $donnees['Titre_film']; ?>
    </strong> : <?php echo $donnees['ID_film']; ?>
    </strong> : <?php echo $donnees['Date_add']; ?>
    </p>  
    <?php
    }
    // Fin de la boucle, le script est terminé !
    ?>
    </p>
    <form action="a.php" method="post"> 
    <p>
    Titre du film:<input type="text" name="search"/><br /> 
    <input type="submit" value="GO!"/>
    </p> 
    </form>
    Cela fonction très bien si je met le titre entier.
    Si par exemple j'ai plusieurs films ayant les noms suivant (je met n'imp ^^)
    Le ciel est bleu
    Le ciel est vert
    Si il ne pleut pas, il fait beau.

    Si je veux chercher un de ces films il faut que je mette le nom en entier.


    Ma question est la suivante: Comment faire pour par exemple chercher "ciel" dans le champ Titre_film et avoir tout les films contenant ce mot?

    Merci de l'aide.

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 226
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 226
    Points : 8 485
    Points
    8 485
    Billets dans le blog
    17

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Oui j'avais déjà essayé cette méthode, mais elle ne marche pas


    Cela marche seulement si je fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE Titre_film LIKE '%ciel%'
    mais dans ce cas il faut modifier le code pour chaque recherche
    En utilisant une donnée venant d'un formulaire cela ne fonctionne pas.



    Edit: apparemment la elle fonctionne mais je ne sais pas comment j'ai fais, je cherche.

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 226
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 226
    Points : 8 485
    Points
    8 485
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par raptor2003 Voir le message
    Oui j'avais déjà essayé cette méthode, mais elle ne marche pas
    Msg d'erreur ?
    Montre le code infructueux.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Oui donc maintenant cela fonctionne en utilisant ta méthode (que j'avais pourtant déjà essayé je ne sais combien de fois) mais le seul truc c'est que cela fonctionne seulement avec un mot clé. Si je tape "ciel" j'ai les 2 résultats, mais si je tape "ciel bleu" je n'ai rien.

  6. #6
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 226
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 226
    Points : 8 485
    Points
    8 485
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par raptor2003 Voir le message
    Oui donc maintenant cela fonctionne en utilisant ta méthode (que j'avais pourtant déjà essayé je ne sais combien de fois) mais le seul truc c'est que cela fonctionne seulement avec un mot clé. Si je tape "ciel" j'ai les 2 résultats, mais si je tape "ciel bleu" je n'ai rien.
    Oui car il faudrait que tu aies des titres contenant au moins "ciel bleu".
    Si LIKE ne te suffit pas tu peux passer par des index FULLTEXT et des recherches avec MATCH/AGAINST, bien plus puissants.
    La doc : http://dev.mysql.com/doc/refman/5.0/...xt-search.html
    Bon dév

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Oui !!! Ca marche !
    Donc j'ai repris les même tables que dans l'exemple et no problem
    Quand j'aurais un peu de temps j'adapterai cela à ma BDD et je posterai un code propre pour les personnes pauvant en avoir besoin.

    Merci.

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/04/2011, 17h13
  2. [AC-2007] rechercher un mot dans un champs
    Par Elo0174 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 09/06/2009, 16h35
  3. Rechercher plusieurs mots dans un champ
    Par olivier_tp dans le forum Langage SQL
    Réponses: 1
    Dernier message: 18/05/2009, 18h49
  4. Requête recherche de mots dans un champs texte
    Par fusex132 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 07/04/2009, 11h09
  5. Recherche de mots dans un champ
    Par dechampfleury dans le forum Access
    Réponses: 3
    Dernier message: 23/01/2007, 10h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo