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 :

explode dauns requête [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé Avatar de memo11
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 132
    Par défaut explode dauns requête
    salut tt le monde,
    Voila je débute un peu en PHP,
    dans un clause 'where' d'une requête 'select' j'utilise l'opérateur 'in' comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select  * 
               from table1
    	      where id1 in (explode(", ","$mm"));
    sachant que 'mm' est un zone de texte remplit par l'user
    mais l'erreur suivant s'affiche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
    merci

  2. #2
    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
    Slt,

    Fais un echo de ta requête après l'avoir construite pour voir ce que ça donne.
    Explode renvoie un tableau donc ça ne peut pas marcher, explique nous ce que tu veux faire (à mon avis tu veux plutôt faire l'inverse d'un explode, donc un implode pour lister les éléments de ton tableau séparés par des virgules).
    Il faut aussi que tu gères une concaténation pour construire proprement ta requête.

    Un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = "select * from table1 where id1 in (" . implode(", ", $mm) . ")";
    à fignoler

  3. #3
    Membre confirmé Avatar de memo11
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 132
    Par défaut
    salut Amara,
    et merci bien,
    voilà qqusq je veux faire:
    mm: est zone de texte où l'user peut taper des liste des mots séparés par des espaces (exp: a z r t )
    et lorsqu'il clique sur le bouton valider le requête suivant s'exécute:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from table1 where id1 in ('a','z','r','t');

  4. #4
    Membre confirmé Avatar de memo11
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 132
    Par défaut
    et j'utilise explode pou afficher la liste

  5. #5
    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
    Ah donc si l'espace est ton séparateur dans la zone de saisie il faut effectivement que tu fasses d'abord un explode pour ranger les valeurs dans un tableau, puis un implode sur le tableau obtenu pour reformater tout comme il faut avec des virgules entre chaque élément.

    Par rapport à la requête de mon précédent post il faut donc ajouter l'explode (ou encore mieux le faire avant la requête pour pas trop surcharger le code de construction de la requête).

  6. #6
    Membre confirmé Avatar de memo11
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 132
    Par défaut
    Merci bien Amara,
    j'utilise implode et explode comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     $opert = explode(" ", $_POST['carct']);
    	   $ch = implode(",",$opert);
    	   $sql= 'in ('."'".$ch."'".')';
    	   $where = $_POST['champ']." ".$sql." ";
    mais retourne resultat fausse et lorsque j'utilise
    nous donne

  7. #7
    Membre confirmé Avatar de memo11
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 132
    Par défaut
    ça va maintenant,
    Merci bien

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

Discussions similaires

  1. [MySQL] Problème "explode" à partir d'une requête MySQL
    Par steph8596 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 05/06/2012, 14h16
  2. Explode : récupérer valeurs champs suite requête
    Par almoha dans le forum Langage
    Réponses: 12
    Dernier message: 01/08/2010, 22h32
  3. [MySQL] Explode : récupérer valeurs champs suite requête
    Par almoha dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 30/07/2010, 21h48
  4. Réponses: 2
    Dernier message: 02/06/2008, 09h10
  5. [BDD] Enregistrer le résultat d'une requête
    Par Mowgly dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/06/2002, 15h26

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