Partage
  • Partager sur Facebook
  • Partager sur Twitter

Un preg_match dans un SELECT ?

    5 juin 2006 à 11:57:38

    Bonjour à tous,

    J'ai un formulaire dans lequel on peut rentrer des mots clefs et voir si ils ont un lien avec le contenu de certains articles. Donc en gros dans ma requette j'aimerais vérifier si il éxiste un contenu d'articles dans lequel se trouvent les mots clefs saisis.

    Le problème c'est qu'avec un preg_match dans ma requette ça ne marche pas:

    $mots_clefs = htmlentities($_POST['mots_clefs'], ENT_QUOTES);

    $requette = mysql_query("SELECT * FROM articles WHERE preg_match('!$mots_clefs!','contenu')");

    Y'a t-il un moyen?
    • Partager sur Facebook
    • Partager sur Twitter
      5 juin 2006 à 11:59:20

      salut, tu peux utiliser des expressions régulières mais il faut qu'elles soient en POSIX et non en PCRE
      (cf cours matéo... http://www.siteduzero.com/tuto-3-170-1-les-expressions-regulieres-partie-2-2.html )
      • Partager sur Facebook
      • Partager sur Twitter
        5 juin 2006 à 12:06:58

        Et pourquoi une expression régulière ?
        Il y a des dizaines d'autres possibilités permettant d'éviter dans 99,99% des cas l'usage d'une regex.
        • Partager sur Facebook
        • Partager sur Twitter
          5 juin 2006 à 12:17:33

          Ba dans une requête sinon avec un LIKE tu peux rechercher les champs qui ressemblent au mot clé, mais s'il doit utiliser une regex dans ce cas ca sera une POSIX si j'ai bien compris les cours de matéo ;)
          en utilisant % tu peux préciser que ca peux contenir quelque chose avant ou après.
          En gros tu fais un moteur de recherche, soit tu rentre dans ta BDD des mots clés que tu associe avec tes sujets, soit tu cherches dans les sujets eux mêmes.
          Dans tous les cas pour un moteur de recherche, il faut faire quelque chose comme ca:

          SELECT id FROM article WHERE contenu LIKE %motcle%
          • Partager sur Facebook
          • Partager sur Twitter

          Un preg_match dans un SELECT ?

          × 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