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 :

Pb de requête Sql MATCH AGAINST en PHP


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Par défaut Pb de requête Sql MATCH AGAINST en PHP
    Bonsoir à tous et à toutes,

    Je viens demander de l'aide sur ce forum parce que je sèche sur qlq chose depuis bientôt 3h et je ne sais plus quoi faire...

    En fait, j'ai crée un petit moteur de recherche Fulltext basique pour mon site.
    Le pb est que, quand j'exécute la requête suivante dans MySql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT * FROM $tableName WHERE MATCH ( titre_even, lieu_even ) 
                   AGAINST (' $motscles ' IN BOOLEAN MODE) ORDER BY id_even DESC 
                   LIMIT $start, $limit ";
    J'obtiens 5 résultats avec le mot clé brazzaville.

    Et quand je tape ce même mot clé dans mon moteur de recherche sur le site, j'ai une page blanche... sans erreur mais, le script ne me retourne rien du tout.

    Sinon à part çà tout fonctionne très bien.

    Auriez vous une idée de comment régler ce problème ?

    Un grand merci d'avance pour le coup de main.

  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
    Par défaut
    Déjà attention, tes espaces autour de $motscles vont exister dans la requête.
    Ensuite si tu obtiens une page blanche c'est peut être que ton PHP n'affiche pas les erreurs.
    Affiche la requête que tu exécutes pour la contrôler.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Déjà attention, tes espaces autour de $motscles vont exister dans la requête.
    Ensuite si tu obtiens une page blanche c'est peut être que ton PHP n'affiche pas les erreurs.
    Affiche la requête que tu exécutes pour la contrôler.
    Merci pour ta réponse rapide sabotage et désolé pour l'usage de la balise [code]
    je viens souvent sur le site mais c'est mon 1er post...

    Sinon, voici ma requête complète avec la gestion des erreurs. J'ai corrigé les espaces aussi comme suggéré plus haut.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $query1 =" SELECT * FROM $tableName WHERE MATCH (titre_even, lieu_even) 
                   AGAINST ('$motscles' IN BOOLEAN MODE) ORDER BY id_even DESC 
                   LIMIT $start, $limit ";
     
    		if(!( $result = mysql_query($query1,$con)))
    	        {
    		        print("Erreur de requete<BR>\n");
    		        print("MySQL reporte: " . mysql_error() . "<BR>\n");
    		        print("La requete etait: $query1<BR>\n");
    		        exit();
    	        }

  4. #4
    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
    Par défaut
    Pour du debug ne mets pas de conditions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $query1 =" SELECT * FROM $tableName WHERE MATCH (titre_even, lieu_even) 
                   AGAINST ('$motscles' IN BOOLEAN MODE) ORDER BY id_even DESC 
                   LIMIT $start, $limit ";
     
    $result = mysql_query($query1,$con);
    echo "Erreur de requete<BR>\n";
    echo "MySQL reporte: " . mysql_error() . "<BR>\n";
    echo "La requete etait: $query1<BR>\n";
    exit();
    Sinon tu rates le cas ou la requête est syntaxiquement bonne mais ne donne pas ce qu'on voudrait pour autant.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Pour du debug ne mets pas de conditions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $query1 =" SELECT * FROM $tableName WHERE MATCH (titre_even, lieu_even) 
                   AGAINST ('$motscles' IN BOOLEAN MODE) ORDER BY id_even DESC 
                   LIMIT $start, $limit ";
     
    $result = mysql_query($query1,$con);
    echo "Erreur de requete<BR>\n";
    echo "MySQL reporte: " . mysql_error() . "<BR>\n";
    echo "La requete etait: $query1<BR>\n";
    exit();
    Sinon tu rates le cas ou la requête est syntaxiquement bonne mais ne donne pas ce qu'on voudrait pour autant.
    Ok, merci je teste çà et je dis ce que ça donne

  6. #6
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Par défaut
    J'ai modifié la requête et j'ai systématiquement ce msg d'erreur qlq soit le mot clé tapé dans le champ de recherche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Erreur de requete
    MySQL reporte:
    La requete etait: SELECT * FROM rapec_v2_even WHERE MATCH (titre_even, lieu_even) AGAINST ('festival' IN BOOLEAN MODE) ORDER BY id_even DESC LIMIT 0, 10

Discussions similaires

  1. [SQL] PB requête SQL dans un script php et sous phpmyadmin
    Par badboys46 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 22/06/2007, 11h36
  2. [MySQL] Requête sql dans un script php
    Par ceaser dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 25/05/2007, 14h01
  3. Réponses: 15
    Dernier message: 11/05/2007, 15h28
  4. [MySQL] requête sql vers excel en php
    Par jenny06 dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 20/04/2007, 11h27
  5. [SQL] Traitement de plusieurs requêtes .SQL dans un script PHP?
    Par M4x dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 19/03/2006, 19h59

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