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:
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