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 :

MATCH AGAINST et $-session [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Par défaut MATCH AGAINST et $-session
    Bonjour,

    j'essaie d'intégrer un formulaire avec un champ texte type moteur de recherche.
    Je souhaite utiliser MATCH AGAINST pour la recherche, mais j'ai une erreur de syntaxe, sûrement à cause de la variable.
    Quelqu'un saurait où est mon erreur ?
    Merci à vous
    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
      $sql = 'SELECT count(*) FROM aide_ac, aide_st where aide_ac.structure=aide_st.s_clef'; 
       if (isset($_SESSION['public'])&&($_SESSION['public'])!="Choisir une activité dans la liste") 
       { 
         $sql .= ' AND  public = "'.$_SESSION['public'].'"'; 
       } 
       if (isset($_SESSION['lieu'])&&($_SESSION['lieu'])!="#") 
       { 
          $sql .= ' AND  lieu = "'.$_SESSION['lieu'].'"'; 
       } 
       if (isset($_SESSION['activite'])&&($_SESSION['activite'])!="Choisir une activité dans la liste") 
       { 
          $sql .= ' AND  activite = "'.$_SESSION['activite'].'"'; 
       }
       if (isset($_SESSION['mot'])&&($_SESSION['mot'])!="") 
       { 
       $sql .= ' AND MATCH 
    (activite, description, adresse) AGAINST ('$_SESSION['mot']' IN BOOLEAN MODE);
       }
    Il semble que c'est dans la partie "AGAINST" que mon problème réside

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 235
    Par défaut
    Salut,

    euh, elle est ou ta clause WHERE ?

  3. #3
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Fais un echo $sql pour voir ce qui est exécuté comme ça tu verras si il y a une erreur de syntaxe.

  4. #4
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Par défaut
    yep, tjs la meme chose

    echo $sql;
    copier-coller dans phpMyAdmin
    et tu vois l'erreur et la, si tu comprend pas, tu copie-colle ta requete sur le forum
    Articles sur developpez.com
    - Gestion des exceptions avec PHP5
    - Chiffrement et hash en PHP contre l'attaque Man in the middle
    - Aedituus - Espace membre sécurisé en PHP5

  5. #5
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql .= ' AND MATCH 
    (activite, description, adresse) AGAINST ('".$_SESSION['mot']."' IN BOOLEAN MODE);
    Articles sur developpez.com
    - Gestion des exceptions avec PHP5
    - Chiffrement et hash en PHP contre l'attaque Man in the middle
    - Aedituus - Espace membre sécurisé en PHP5

  6. #6
    Membre confirmé Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Par défaut
    merci à vous, c'était un problème avec les '

    la version corrigée est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ("'.$_SESSION['mot'].'" IN BOOLEAN MODE)';
    je penserai aux " la prochaine fois.

  7. #7
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 235
    Par défaut
    Citation Envoyé par carelha
    merci, je vais voir ça. Pour l'instant mon erreur est :

    Parse error: parse error, unexpected T_VARIABLE etc
    et pour la clause where, elle est au tout début.
    Ah oui ta raison, faut que je m'achete des lunettes moi, je cherchais un bon WHERE comme tu avais bien mis tout en majuscule les clauses.

    Je te conseille de faire ta requete sans les AND. Si ça marche fais un par un les AND pour voir l'alternative qui ne marche pas. Et prend bien en compte la modif de wamania, car il y avait bien une erreur a cette ligne.

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

Discussions similaires

  1. MATCH() AGAINST(), un cas bizarre !
    Par ygrim dans le forum Installation
    Réponses: 13
    Dernier message: 13/09/2007, 17h38
  2. Match against et pertinence.
    Par ddelec24 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 26/07/2007, 15h54
  3. Probleme avec "match against"
    Par biggione dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/03/2007, 14h57
  4. Problème recherche match.. against
    Par pierre_pogo dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/08/2006, 10h45
  5. [MySQL] match against et % ou autre jocker
    Par carelha dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 27/04/2006, 18h21

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