Partage
  • Partager sur Facebook
  • Partager sur Twitter

Requete SQL de recherche sur 2 champs d'une table !!

MySQL

    13 juillet 2009 à 20:20:03

    Bonjour,

    Je vous écrit pour vous demander comment je peux faire une requête SQL pour faire une recherche sur 2 champs d'une table??

    par exemple pour une personne

    prénom & nom.

    Voici la requête que j'ai effectuer mais des que je met un espace après le prénom il me trouve plus rien.

    $query = "SELECT * FROM `personne` WHERE (`nom` LIKE '".$debut."%') OR (`prenom` LIKE '".$debut."%') and id_personne not in (SELECT acteur FROM acteur_prefere) order by nom limit 20 ";
    
    • Partager sur Facebook
    • Partager sur Twitter
      13 juillet 2009 à 20:24:55

      Pour retirer les espaces avant avec après tu peux utiliser la fonction trim() de php ou MySQL.

      Après c'est quoi qui bug? La requete ou simplement l'espace?
      • Partager sur Facebook
      • Partager sur Twitter
        13 juillet 2009 à 20:31:16

        Ok alors je t'explique tout.

        J'ai un autocomplete qui fait une recherche sur la table personne cette table personne contiens 2 champs prenom et nom.

        Quand je tappe dans mon champs le prenom d'une personne il me trouve toute les personne qui commencent par ce prenom, mais si je met un espace après le prenom pour écrire le nom il ne me propose plus rien.

        Par exemple si je tappe : Johnny il me trouve tout les personne qui on le prenom Johnny dont (Johnny Depp) mais si je met un espace pour ecrire Depp il ne me propose plus rien, alors qu'il devrai me trouver Johnny Depp puisque.

        Alors le problème dois venir de la requête SQL à mon avis
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          13 juillet 2009 à 20:38:01

          Et bien, essaye ça pour voir :
          SELECT * 
          FROM personne 
          WHERE nom LIKE '".$debut."%'
          OR prenom LIKE '".$debut."%' 
          OR CONCAT(prenom, ' ', nom) LIKE '".$debut."%'
          AND id_personne NOT IN (SELECT acteur FROM acteur_prefere) 
          ORDER BY nom 
          LIMIT 20
          


          Les apostrophes inversé autour des noms de colonnes/tables sont inutiles !
          • Partager sur Facebook
          • Partager sur Twitter
            13 juillet 2009 à 20:44:23

            Merci beaucoup Oishiiii sa marche nikel. je ne connaissais pas CONCAT.

            Salutations

            Bonne soirée
            • Partager sur Facebook
            • Partager sur Twitter

            Requete SQL de recherche sur 2 champs d'une table !!

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown