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 :

Moteur de recherche avec PDO + fonction LIKE [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Points : 13
    Points
    13
    Par défaut Moteur de recherche avec PDO + fonction LIKE
    Bonjour à tous.

    Je suis étudiant en programmation et je dois réaliser un site WEB dans le cadre d'un stage. Entre autres choses : un système de recherche par mots clé multiples dans une base de données. J'ai déjà une idée des outils que je peux utiliser mais j'ai encore de grosses lacunes et je n'ai pas réussi à trouver de tutoriel clair à ce sujet. Voici le code que j'utilise pour le moment (et qui évidemment ne marche pas)

    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
    $recherche = "$_POST['recherche']";
    $mot = explode(' ', $recherche);
    $mc = '%'.$mot.'%';
     
    $query = $bdd->prepare('SELECT * FROM files WHERE mc LIKE :mc');
    $query->bindValue(':mc', $mc, PDO::PARAM_STR);
    $query->execute(array($mc));
    $resultats = $query->rowCount();
     
    if ($resultats == 0)
     
    {
       echo "Aucun document trouvé !"
    }
     
    else
     
    {		
       echo "$resultats documents trouvés";	
     
       while ($donnees = $query->fetch())
     
      {
          $files = $donnees['name'];
          echo "$files";
      }
    }
     
    $query->CloseCursor();
    Je précise que la colonne " mc " de ma table " files " a été remplie au moment de l'upload des fichiers par une chaîne de caractères comportant la concaténation de 1 à 6 mots clés entrés dans un formulaire au préalable. Ce que je voudrais faire pour l'instant c'est chercher les documents dont tous les mots clé contenus dans l'array $mc sont présents dans cette colonne mc de ma table.

    Je remercie par avance ceux qui pourraient m'aider.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $recherche = "$_POST['recherche']";
    Les " ne servent à rien

    $mot est un tableau PHP contenant les mots saisis.
    Tu ne peux donc pas le traiter comme une chaine.
    Avec un petit debug tu aurais vu que tu obtiens "%Array%".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = $bdd->prepare('SELECT * FROM files WHERE mc LIKE :mc');
    La tu ne prévois qu'un seul paramètre, alors qu'il doit y avoir autant de paramètre que de mots cherchés.
    Un méthode et d'utiliser des paramètres sous la forme "?".
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Points : 13
    Points
    13
    Par défaut
    Ah oui c'est vrai. Merci pour ces précisions. Je vais réessayer en changeant les paramètres de la requête.

    EDIT : en effet cela fonctionne bien mieux ainsi. Encore merci pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Problème de recherche avec la fonction LIKE
    Par cedric pouilly dans le forum IHM
    Réponses: 2
    Dernier message: 08/04/2013, 16h39
  2. Réponses: 4
    Dernier message: 21/11/2007, 22h27
  3. [MySQL] Moteur de recherche avec accents
    Par NiX31 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/01/2007, 12h27
  4. moteur de recherche avec requete sql
    Par hottnikks_79 dans le forum ASP
    Réponses: 4
    Dernier message: 03/08/2006, 03h58
  5. Réponses: 6
    Dernier message: 04/11/2005, 17h09

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