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 :

utiliser le resultat d'une requete dans un WHERE


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 46
    Points : 36
    Points
    36
    Par défaut utiliser le resultat d'une requete dans un WHERE
    Bonjour je débute en php et j'ai un petit problème
    j'ai deux requetes la première va me permettre de récupérer le nom de ma demande que d’appel ici $ldemande
    la seconde requête utilisera le résultat de la premiere (nom de la demande) dans un WHERE.
    Mon problème est le suivant quant je parcoure la boucle il me récupéré juste le première élément. En gros le traitement ne se
    fait pas sur les autres donnée.
    J'ai tenté plusieurs choses comme l'utilisation d'une boucle while avec compteur le nombre de ligne renvoyé par la 1er requête
    mais le résultat reste le même.
    Le problème doit venir de ma boucle

    Je vous montre mon code

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
    //Utilisation d'un premiere requete qui nous donnera la demande client
    while (isset($ss_sys_id[$i]) )  {
     
        //Premiere requete qui va afficher le nom de la demande
        $sql0 = "SELECT demande_ou_projet.IdClientDemande
                AS Demande
                FROM ((sous_systeme
                INNER JOIN (forfait_budget
                INNER JOIN demande_ou_projet
                ON forfait_budget.ID_FORFAIT_BUDGET = demande_ou_projet.REF_FORFAIT_BUDGET)
                ON sous_systeme.IdSousSyst = forfait_budget.REF_SOUS_SYSTEME)
                INNER JOIN demande_se_trouve_dans_etat
                ON demande_ou_projet.IdDemande = demande_se_trouve_dans_etat.IdDemande)
                INNER JOIN ordre_de_travail
                ON (forfait_budget.ID_FORFAIT_BUDGET = ordre_de_travail.ID_FORFAIT_BUDGET)
                AND (demande_ou_projet.IdDemande = ordre_de_travail.IdDemande)
                WHERE (((forfait_budget.ID_FORFAIT_BUDGET )='$ss_sys_id[$i]')
                AND ((ordre_de_travail.charge_consommee_totale)<>0)
                AND ((demande_se_trouve_dans_etat.Date_entree)
                Between '".date_en($ledebut)."' And '".date_en($lafin)."'
                AND ((sous_systeme.IdAppli)='DEV')
                AND ((demande_se_trouve_dans_etat.Code_etat)='TER' $where_type)))
                ";
     
        $res0=$bdd->query($sql0);
        echo $nbr0=$bdd->num_rows($res0);
     
     
    while ($row0=$bdd->fetch_array($res0)) {
        $ldemande=($row0['Demande']);
     
     
     
        //variable j
        $j=0;
        for ($j;$nbr0>$j;$j++){
        //requete
        $sql = "SELECT demande_ou_projet.IdClientDemande
                AS DemandeClient, forfait_budget.CODE_FORFAIT_BUDGET
                AS Projet, demande_ou_projet.Type_demande
                AS Cor_Evo,
                SUM(ordre_de_travail.charge_consommee_totale)
                AS Charge, DATE_FORMAT(demande_se_trouve_dans_etat.Date_entree, '%Y/%m/%d')
                AS Date_cloture,
                LEFT(demande_ou_projet.Libelle, 60)
                AS Libelle, ressource_tma.Equipe
                AS Site, demande_ou_projet.Reponse_technique
                AS Obervation, SUBSTRING_INDEX(SUBSTRING_INDEX(demande_ou_projet.Libelle,'|', -2),'|', 1)
                AS Pays, SUBSTRING_INDEX( SUBSTRING_INDEX( demande_ou_projet.Libelle , 'CALL', -1 ) , '|', 1 )
                AS NumCall, charge_vendue
                AS ChargeVendu
                FROM (sous_systeme
                INNER JOIN (forfait_budget
                INNER JOIN (demande_ou_projet
                INNER JOIN ordre_de_travail
                ON demande_ou_projet.IdDemande = ordre_de_travail.IdDemande)
                ON (ordre_de_travail.ID_FORFAIT_BUDGET = forfait_budget.ID_FORFAIT_BUDGET)
                AND (forfait_budget.ID_FORFAIT_BUDGET = demande_ou_projet.REF_FORFAIT_BUDGET))
                ON sous_systeme.IdSousSyst = forfait_budget.REF_SOUS_SYSTEME)
                INNER JOIN demande_se_trouve_dans_etat
                ON demande_ou_projet.IdDemande = demande_se_trouve_dans_etat.IdDemande
                INNER JOIN ressource_tma
                ON ordre_de_travail.Ressource = ressource_tma.IdRessource
                WHERE ((ordre_de_travail.charge_consommee_totale)<>0
                AND forfait_budget.ID_FORFAIT_BUDGET='$ss_sys_id[$i]'
                AND demande_ou_projet.IdClientDemande='".$ldemande."'
                AND demande_se_trouve_dans_etat.Date_entree
                Between '".date_en($ledebut)."' And '".date_en($lafin)."'
                AND sous_systeme.IdAppli='DEV'
                AND demande_se_trouve_dans_etat.Code_etat='TER' $where_type)
                ";
            }
        }
     
    //Execution de la requete
    $res=$bdd->query($sql);
    $nbr=$bdd->num_rows($res);
    }
    je reste à votre disposition pour plus d'info ou question merci d'avance

  2. #2
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    C'est parceque tu sors du 2e while et du for avant de lancer la 2e requête.

    Du coup tu t'embêtes à boucler pour créer X requêtes mais tu n'éxécutes que la dernière une fois toutes tes boucles terminées.

    Tu dois mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //Execution de la requete
    $res=$bdd->query($sql);
    $nbr=$bdd->num_rows($res);
    Dans ta boucle for.

Discussions similaires

  1. utilisation du resultat d'une requete dans une autre
    Par lewhechris dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 26/09/2011, 09h05
  2. utilisation du resultat d'une requete dans un curseur
    Par pseudobidon57 dans le forum SQL
    Réponses: 9
    Dernier message: 23/05/2007, 17h52
  3. Enregistrer le resultat d'une requete dans un document texte
    Par nmerydem dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/07/2005, 12h32
  4. resultat d'une requete dans une ifrmae aussi??
    Par selifx dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 08/02/2005, 14h20
  5. pb d'utilisation du resultat d'1 requete dans 1 autre
    Par joquetino dans le forum Langage SQL
    Réponses: 7
    Dernier message: 09/03/2004, 15h58

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