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 :

Passer un tableau dans IN [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut Passer un tableau dans IN
    Dans un requête je dois mettre un IN, comme dans la requête suivante.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            $sql = "SELECT
                        SUM(heures_nbr)  AS fulltime
                       FROM heures
                            INNER JOIN dossier
                               ON dossier.id_participant = heures.id_participant
                        WHERE heures_date BETWEEN '$annee-$mois-01' AND '$annee-$mois-$jours'
                        AND heures_schema IN ($item)
                        AND dos_groupe IN ($groupe)";
    Je tente de passer ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "'Horeca-Salle','Horeca-Cuisine','Horeca-Colectivite'"
    Bien évidement cela ne fonctionne pas, puisque je passe un string complet et non pas trois string comme cela devrais être.

    Quelle solution utilisez-vous?

    Merci.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 667
    Par défaut
    Citation Envoyé par MaitrePylos Voir le message
    Bien évidement cela ne fonctionne pas, puisque je passe un string complet et non pas trois string comme cela devrais être.
    c'est pourtant ce qu'il faut faire
    affiche la requête complète
    qu'est ce que tu as comme message d'erreur ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    235
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 235
    Par défaut
    il faut enlever les guillements (") et les remplacer par des parenthèses non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ('Horeca-Salle','Horeca-Cuisine','Horeca-Colectivite')

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Bonjour, voici ma requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $db->heureEftMois($annee, $i+1, $jours , "'+','-'","'$nom_groupe'");
    Voici ce que génère PHP

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT calcul_l_deux('2009-1-01','2009-1-31','+','-','Horeca-Salle') as fulltime

    l'erreur est que j'ai un argument de trop, si je concatène le '+' et le '-', je me retrouve avec un schéma inexistant.

    Ps : avec les parenthèses c'est pas mieux.

  5. #5
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 667
    Par défaut
    Citation Envoyé par MaitrePylos Voir le message
    Bonjour, voici ma requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $db->heureEftMois($annee, $i+1, $jours , "'+','-'","'$nom_groupe'");
    Voici ce que génère PHP

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT calcul_l_deux('2009-1-01','2009-1-31','+','-','Horeca-Salle') as fulltime
    et tu voudrais que cette méthode "heureEftMois" génère quoi ?
    une requête dans ce genre ?
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT calcul_l_deux('2009-1-01','2009-1-31','\'+\',\'-\'','Horeca-Salle') as fulltime

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    235
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 235
    Par défaut
    Moi je laisse tomber...

    La seule façon dont j'utilise le IN c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT champs FROM table WHERE champ1 IN ('truc','machin','bidule');
    C'est tout ce que je sais ! Bonne chance !

  7. #7
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Citation Envoyé par mathieu Voir le message
    et tu voudrais que cette méthode "heureEftMois" génère quoi ?
    une requête dans ce genre ?
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT calcul_l_deux('2009-1-01','2009-1-31','\'+\',\'-\'','Horeca-Salle') as fulltime
    Quelque chose dans le genre oui, mais dans ton exemple je pense que les backSlach vont rester ?

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

Discussions similaires

  1. Passer un tableau dans un trigger
    Par piotrr dans le forum jQuery
    Réponses: 3
    Dernier message: 11/01/2010, 09h48
  2. Passer un tableau dans un lien
    Par Giantrick dans le forum Langage
    Réponses: 9
    Dernier message: 18/05/2009, 01h32
  3. [AJAX] passer un tableau dans xhr.send() ?
    Par beegees dans le forum AJAX
    Réponses: 10
    Dernier message: 23/03/2009, 14h39
  4. Réponses: 1
    Dernier message: 28/12/2006, 17h02
  5. [Tableaux] Passer un tableau dans une requête HTTP ??
    Par haffouff dans le forum Langage
    Réponses: 2
    Dernier message: 09/05/2006, 17h17

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