Bonjour,
merci de me répondre si vite.
Je ne souhaite pas pour un problème d'affichage faire une jointure au niveau de ma requete principale.
Car je ne veux pas :
1 ligne --> donnée1
2 ligne --> donnée2
mais :
1 ligne-->donnée1
-->donnée2
-->etc
2 ligne-->donnée1
-->donnée2
-->etc
De plus pour plus de lisibilité sur le forum j'ai réduit mes requetes car en réalité elles ressemblent à ca pour la première:
$query_liste_produit ="SELECT FPART, FPQUAL, FPARTI, ARLIB, FPPX1, FPPX2, TIGENR, TICOUL, CONCAT( CRLIG1, CRLIG2, CRLIG3 ) , CRLIG1, CRLIG2, CRLIG3, FPCODE, FPLOG1";
if ($coloris != ""){$query_liste_produit.=", FPCOLO";}
$query_liste_produit.=" FROM (";
$query_liste_produit.="SELECT DFFAMPP.FPART, DFFAMPP.FPARTI, DFFAMPP.FPQUAL, DFARTIP.ARLIB, DFFAMPP.FPPX1, DFFAMPP.FPPX2, DFSTOP.TIGENR, DFSTOP.TICOUL, CONCAT( DFCARCP.CRLIG1, DFCARCP.CRLIG2, DFCARCP.CRLIG3 ) , DFCARCP.CRLIG1, DFCARCP.CRLIG2, DFCARCP.CRLIG3, FPCODE, FPLOG1";
if ($coloris != ""){$query_liste_produit.=", DFFAMPP.FPCOLO";}
$query_liste_produit.=" FROM (DFCARCP, DFSTOP, DFARTIP, DFFAMPP";
$query_liste_produit.=" LEFT JOIN DFCDCLP ON ( DFFAMPP.FPART = DFCDCLP.CODART";
$query_liste_produit.=" AND DFFAMPP.FPQUAL = DFCDCLP.QUALDF";
$query_liste_produit.=" AND DFFAMPP.FPMOD1 = DFCDCLP.MOD1DF";
$query_liste_produit.=" AND DFFAMPP.FPQUAV = DFCDCLP.QUAVDF";
$query_liste_produit.=" AND DFFAMPP.FPCOLO = DFCDCLP.COLODF";
$query_liste_produit.=" AND DFFAMPP.FPARTI = DFCDCLP.ARTI";
$query_liste_produit.=" AND DFCDCLP.NUCODF = 'STOCK' ) ";
$query_liste_produit.=" LEFT JOIN PANIER ON ( DFCDCLP.CODART = PANIER.CODART";
$query_liste_produit.=" AND DFCDCLP.QUALDF = PANIER.QUALDF";
$query_liste_produit.=" AND DFCDCLP.COLODF = PANIER.COLODF";
$query_liste_produit.=" AND DFCDCLP.ARTI = PANIER.ARTI";
$query_liste_produit.=" AND DFCDCLP.MOD1DF = PANIER.MOD1DF";
$query_liste_produit.=" AND DFCDCLP.QUAVDF = PANIER.QUAVDF";
$query_liste_produit.=" AND PANIER.JLCLDF = DFCDCLP.JLCLDF";
$query_liste_produit.=" AND PANIER.MLCLDF = DFCDCLP.MLCLDF";
$query_liste_produit.=" AND PANIER.ALCLDF = DFCDCLP.ALCLDF";
$query_liste_produit.=" AND PANIER.CQ1DF = DFCDCLP.CQ1DF";
$query_liste_produit.=" AND PANIER.CQ2DF = DFCDCLP.CQ2DF ) )";
$query_liste_produit.=" WHERE DFFAMPP.FPCOLO = DFSTOP.COLODF";
$query_liste_produit.=" AND DFFAMPP.FPQUAL = DFSTOP.QUALDF";
$query_liste_produit.=" AND DFFAMPP.FPARTI = DFCARCP.ARTI";
$query_liste_produit.=" AND DFFAMPP.FPART = DFARTIP.ARCODE";
$query_liste_produit.=" AND DFFAMPP.FPART = DFCARCP.CDA";
if ($article != ""){$query_liste_produit.=" AND DFFAMPP.FPART = '$article'";}
if ($tissu != ""){$query_liste_produit.=" AND DFSTOP.TIGENR LIKE '%$tissu%'";}
if ($modele != ""){$query_liste_produit.=" AND CONCAT(CRLIG1,CRLIG2,CRLIG3) LIKE '%$modele%'";}
if ($collection != ""){$query_liste_produit.=" AND DFFAMPP.FPCODE = '$collection'";}
if ($coloris != ""){$query_liste_produit.=" AND DFSTOP.TICOUL LIKE '$coloris_nom'";}
if ($coloris != ""){$query_liste_produit.=" GROUP BY DFFAMPP.FPARTI, DFFAMPP.FPCOLO, DFFAMPP.FPQUAL";}else{$query_liste_produit.=" GROUP BY DFFAMPP.FPARTI, DFFAMPP.FPQUAL";}
$query_liste_produit.=" HAVING (";
$query_liste_produit.=" (";
$query_liste_produit.=" SUM( IFNULL( DFCDCLP.TOTCDF, 0 ) ) ";
$query_liste_produit.=" ) - ( (";
$query_liste_produit.=" SUM( IFNULL( PANIER.T1, 0 ) ) + SUM( IFNULL( PANIER.T2, 0 ) ) + SUM( IFNULL( PANIER.T3, 0 ) ) + SUM( IFNULL( PANIER.T4, 0 ) ) + SUM( IFNULL( PANIER.T5, 0 ) ) + SUM( IFNULL( PANIER.T6, 0 ) ) + SUM( IFNULL( PANIER.T7, 0 ) ) + SUM( IFNULL( PANIER.T8, 0 ) ) + SUM( IFNULL( PANIER.T9, 0 ) ) + SUM( IFNULL( PANIER.T10, 0 ) ) + SUM( IFNULL( PANIER.T11, 0 ) ) + SUM( IFNULL( PANIER.T12, 0 ) ) + SUM( IFNULL( PANIER.T13, 0 ) ) + SUM( IFNULL( PANIER.T14, 0 ) ) + SUM( IFNULL( PANIER.T15, 0 ) ) + SUM( IFNULL( PANIER.T16, 0 ) ) + SUM( IFNULL( PANIER.T17, 0 ) ) + SUM( IFNULL( PANIER.T18, 0 ) ) ) ";
$query_liste_produit.=" ) <>0";
$query_liste_produit.=" )";
$query_liste_produit.=" UNION SELECT DFFAMPP.FPART, DFFAMPP.FPARTI, DFFAMPP.FPQUAL, DFARTIP.ARLIB, DFFAMPP.FPPX1, DFFAMPP.FPPX2, DFSTOP.TIGENR, DFSTOP.TICOUL, CONCAT( DFCARCP.CRLIG1, DFCARCP.CRLIG2, DFCARCP.CRLIG3 ) , DFCARCP.CRLIG1, DFCARCP.CRLIG2, DFCARCP.CRLIG3, FPCODE, FPLOG1";
if ($coloris != ""){$query_liste_produit.=", FPCOLO";}
$query_liste_produit.=" FROM (DFCARCP, DFSTOP, DFARTIP, DFFAMPP";
$query_liste_produit.=" LEFT JOIN DFSTAFP ON ( DFFAMPP.FPART = DFSTAFP.CART";
$query_liste_produit.=" AND DFFAMPP.FPQUAL = DFSTAFP.QUALDF";
$query_liste_produit.=" AND DFFAMPP.FPMOD1 = DFSTAFP.MOD1DF";
$query_liste_produit.=" AND DFFAMPP.FPQUAV = DFSTAFP.QUAVDF";
$query_liste_produit.=" AND DFFAMPP.FPCOLO = DFSTAFP.COLODF";
$query_liste_produit.=" AND DFFAMPP.FPARTI = DFSTAFP.DES1 ) ";
$query_liste_produit.=" LEFT JOIN PANIER ON ( DFSTAFP.CART = PANIER.CODART";
$query_liste_produit.=" AND DFSTAFP.QUALDF = PANIER.QUALDF";
$query_liste_produit.=" AND DFSTAFP.COLODF = PANIER.COLODF";
$query_liste_produit.=" AND DFSTAFP.DES1 = PANIER.ARTI";
$query_liste_produit.=" AND DFSTAFP.MOD1DF = PANIER.MOD1DF";
$query_liste_produit.=" AND DFSTAFP.QUAVDF = PANIER.QUAVDF";
$query_liste_produit.=" AND PANIER.JLCLDF =0";
$query_liste_produit.=" AND PANIER.MLCLDF =0";
$query_liste_produit.=" AND PANIER.ALCLDF =0 ) )";
$query_liste_produit.=" WHERE DFFAMPP.FPCOLO = DFSTOP.COLODF";
$query_liste_produit.=" AND DFFAMPP.FPQUAL = DFSTOP.QUALDF";
$query_liste_produit.=" AND DFFAMPP.FPARTI = DFCARCP.ARTI";
$query_liste_produit.=" AND DFFAMPP.FPART = DFARTIP.ARCODE";
$query_liste_produit.=" AND DFFAMPP.FPART = DFCARCP.CDA";
if ($article != ""){$query_liste_produit.=" AND DFFAMPP.FPART = '$article'";}
if ($tissu != ""){$query_liste_produit.=" AND DFSTOP.TIGENR LIKE '%$tissu%'";}
if ($modele != ""){$query_liste_produit.=" AND CONCAT(CRLIG1,CRLIG2,CRLIG3) LIKE '%$modele%'";}
if ($collection != ""){$query_liste_produit.=" AND DFFAMPP.FPCODE = '$collection'";}
if ($coloris != ""){$query_liste_produit.=" AND DFSTOP.TICOUL LIKE '$coloris_nom'";}
if ($coloris != ""){$query_liste_produit.=" GROUP BY DFFAMPP.FPARTI, DFFAMPP.FPCOLO, DFFAMPP.FPQUAL";}else{$query_liste_produit.=" GROUP BY DFFAMPP.FPARTI, DFFAMPP.FPQUAL";}
$query_liste_produit.=" HAVING (";
$query_liste_produit.=" (";
$query_liste_produit.=" SUM( IFNULL( DFSTAFP.T01, 0 ) ) + SUM( IFNULL( DFSTAFP.T02, 0 ) ) + SUM( IFNULL( DFSTAFP.T03, 0 ) ) + SUM( IFNULL( DFSTAFP.T04, 0 ) ) + SUM( IFNULL( DFSTAFP.T05, 0 ) ) + SUM( IFNULL( DFSTAFP.T06, 0 ) ) + SUM( IFNULL( DFSTAFP.T07, 0 ) ) + SUM( IFNULL( DFSTAFP.T08, 0 ) ) + SUM( IFNULL( DFSTAFP.T09, 0 ) ) + SUM( IFNULL( DFSTAFP.T10, 0 ) ) + SUM( IFNULL( DFSTAFP.T11, 0 ) ) + SUM( IFNULL( DFSTAFP.T12, 0 ) ) + SUM( IFNULL( DFSTAFP.T13, 0 ) ) + SUM( IFNULL( DFSTAFP.T14, 0 ) ) + SUM( IFNULL( DFSTAFP.T15, 0 ) ) + SUM( IFNULL( DFSTAFP.T16, 0 ) ) + SUM( IFNULL( DFSTAFP.T17, 0 ) ) + SUM( IFNULL( DFSTAFP.T18, 0 ) ) ";
$query_liste_produit.=" ) - ( (";
$query_liste_produit.=" SUM( IFNULL( PANIER.T1, 0 ) ) + SUM( IFNULL( PANIER.T2, 0 ) ) + SUM( IFNULL( PANIER.T3, 0 ) ) + SUM( IFNULL( PANIER.T4, 0 ) ) + SUM( IFNULL( PANIER.T5, 0 ) ) + SUM( IFNULL( PANIER.T6, 0 ) ) + SUM( IFNULL( PANIER.T7, 0 ) ) + SUM( IFNULL( PANIER.T8, 0 ) ) + SUM( IFNULL( PANIER.T9, 0 ) ) + SUM( IFNULL( PANIER.T10, 0 ) ) + SUM( IFNULL( PANIER.T11, 0 ) ) + SUM( IFNULL( PANIER.T12, 0 ) ) + SUM( IFNULL( PANIER.T13, 0 ) ) + SUM( IFNULL( PANIER.T14, 0 ) ) + SUM( IFNULL( PANIER.T15, 0 ) ) + SUM( IFNULL( PANIER.T16, 0 ) ) + SUM( IFNULL( PANIER.T17, 0 ) ) + SUM( IFNULL( PANIER.T18, 0 ) ) ) ";
$query_liste_produit.=" ) <>0)";
$query_liste_produit.=" ) AS sub";
et à ca pour la seconde :
$liste_colo ="SELECT FPCOLO, TICOUL
FROM (SELECT DFFAMPP.FPART, DFFAMPP.FPARTI, DFFAMPP.FPQUAL, DFARTIP.ARLIB, DFSTOP.TIGENR, DFSTOP.TICOUL, DFFAMPP.FPCOLO
FROM (
DFCARCP, DFSTOP, DFARTIP, DFFAMPP
LEFT JOIN DFCDCLP ON ( DFFAMPP.FPART = DFCDCLP.CODART
AND DFFAMPP.FPQUAL = DFCDCLP.QUALDF
AND DFFAMPP.FPMOD1 = DFCDCLP.MOD1DF
AND DFFAMPP.FPQUAV = DFCDCLP.QUAVDF
AND DFFAMPP.FPCOLO = DFCDCLP.COLODF
AND DFFAMPP.FPARTI = DFCDCLP.ARTI
AND DFCDCLP.NUCODF = 'STOCK' )
LEFT JOIN PANIER ON ( DFCDCLP.CODART = PANIER.CODART
AND DFCDCLP.QUALDF = PANIER.QUALDF
AND DFCDCLP.COLODF = PANIER.COLODF
AND DFCDCLP.ARTI = PANIER.ARTI
AND DFCDCLP.MOD1DF = PANIER.MOD1DF
AND DFCDCLP.QUAVDF = PANIER.QUAVDF
AND PANIER.JLCLDF = DFCDCLP.JLCLDF
AND PANIER.MLCLDF = DFCDCLP.MLCLDF
AND PANIER.ALCLDF = DFCDCLP.ALCLDF
AND PANIER.CQ1DF = DFCDCLP.CQ1DF
AND PANIER.CQ2DF = DFCDCLP.CQ2DF )
)
WHERE DFFAMPP.FPCOLO = DFSTOP.COLODF
AND DFFAMPP.FPQUAL = DFSTOP.QUALDF
AND DFFAMPP.FPARTI = DFCARCP.ARTI
AND DFFAMPP.FPART = DFARTIP.ARCODE
AND DFFAMPP.FPART = DFCARCP.CDA
AND DFFAMPP.FPART = '$val_liste_produit[FPART]'
AND DFFAMPP.FPQUAL = '$val_liste_produit[FPQUAL]'
AND DFFAMPP.FPARTI = '$val_liste_produit[FPARTI]'
GROUP BY DFFAMPP.FPQUAL, DFFAMPP.FPARTI, DFFAMPP.FPCOLO
HAVING (
(
SUM( IFNULL( DFCDCLP.TOTCDF, 0 ) )
) - ( (
SUM( IFNULL( PANIER.T1, 0 ) ) + SUM( IFNULL( PANIER.T2, 0 ) ) + SUM( IFNULL( PANIER.T3, 0 ) ) + SUM( IFNULL( PANIER.T4, 0 ) ) + SUM( IFNULL( PANIER.T5, 0 ) ) + SUM( IFNULL( PANIER.T6, 0 ) ) + SUM( IFNULL( PANIER.T7, 0 ) ) + SUM( IFNULL( PANIER.T8, 0 ) ) + SUM( IFNULL( PANIER.T9, 0 ) ) + SUM( IFNULL( PANIER.T10, 0 ) ) + SUM( IFNULL( PANIER.T11, 0 ) ) + SUM( IFNULL( PANIER.T12, 0 ) ) + SUM( IFNULL( PANIER.T13, 0 ) ) + SUM( IFNULL( PANIER.T14, 0 ) ) + SUM( IFNULL( PANIER.T15, 0 ) ) + SUM( IFNULL( PANIER.T16, 0 ) ) + SUM( IFNULL( PANIER.T17, 0 ) ) + SUM( IFNULL( PANIER.T18, 0 ) ) )
) <>0
)
UNION SELECT DFFAMPP.FPART, DFFAMPP.FPARTI, DFFAMPP.FPQUAL, DFARTIP.ARLIB, DFSTOP.TIGENR, DFSTOP.TICOUL, DFFAMPP.FPCOLO
FROM (
DFCARCP, DFSTOP, DFARTIP, DFFAMPP
LEFT JOIN DFSTAFP ON ( DFFAMPP.FPART = DFSTAFP.CART
AND DFFAMPP.FPQUAL = DFSTAFP.QUALDF
AND DFFAMPP.FPMOD1 = DFSTAFP.MOD1DF
AND DFFAMPP.FPQUAV = DFSTAFP.QUAVDF
AND DFFAMPP.FPCOLO = DFSTAFP.COLODF
AND DFFAMPP.FPARTI = DFSTAFP.DES1 )
LEFT JOIN PANIER ON ( DFSTAFP.CART = PANIER.CODART
AND DFSTAFP.QUALDF = PANIER.QUALDF
AND DFSTAFP.COLODF = PANIER.COLODF
AND DFSTAFP.DES1 = PANIER.ARTI
AND DFSTAFP.MOD1DF = PANIER.MOD1DF
AND DFSTAFP.QUAVDF = PANIER.QUAVDF
AND PANIER.JLCLDF =0
AND PANIER.MLCLDF =0
AND PANIER.ALCLDF =0 )
)
WHERE DFFAMPP.FPCOLO = DFSTOP.COLODF
AND DFFAMPP.FPQUAL = DFSTOP.QUALDF
AND DFFAMPP.FPARTI = DFCARCP.ARTI
AND DFFAMPP.FPART = DFARTIP.ARCODE
AND DFFAMPP.FPART = DFCARCP.CDA
AND DFFAMPP.FPART = '$val_liste_produit[FPART]'
AND DFFAMPP.FPQUAL = '$val_liste_produit[FPQUAL]'
AND DFFAMPP.FPARTI = '$val_liste_produit[FPARTI]'
GROUP BY DFFAMPP.FPQUAL, DFFAMPP.FPARTI, DFFAMPP.FPCOLO
HAVING (
(
SUM( IFNULL( DFSTAFP.T01, 0 ) ) + SUM( IFNULL( DFSTAFP.T02, 0 ) ) + SUM( IFNULL( DFSTAFP.T03, 0 ) ) + SUM( IFNULL( DFSTAFP.T04, 0 ) ) + SUM( IFNULL( DFSTAFP.T05, 0 ) ) + SUM( IFNULL( DFSTAFP.T06, 0 ) ) + SUM( IFNULL( DFSTAFP.T07, 0 ) ) + SUM( IFNULL( DFSTAFP.T08, 0 ) ) + SUM( IFNULL( DFSTAFP.T09, 0 ) ) + SUM( IFNULL( DFSTAFP.T10, 0 ) ) + SUM( IFNULL( DFSTAFP.T11, 0 ) ) + SUM( IFNULL( DFSTAFP.T12, 0 ) ) + SUM( IFNULL( DFSTAFP.T13, 0 ) ) + SUM( IFNULL( DFSTAFP.T14, 0 ) ) + SUM( IFNULL( DFSTAFP.T15, 0 ) ) + SUM( IFNULL( DFSTAFP.T16, 0 ) ) + SUM( IFNULL( DFSTAFP.T17, 0 ) ) + SUM( IFNULL( DFSTAFP.T18, 0 ) )
) - ( (
SUM( IFNULL( PANIER.T1, 0 ) ) + SUM( IFNULL( PANIER.T2, 0 ) ) + SUM( IFNULL( PANIER.T3, 0 ) ) + SUM( IFNULL( PANIER.T4, 0 ) ) + SUM( IFNULL( PANIER.T5, 0 ) ) + SUM( IFNULL( PANIER.T6, 0 ) ) + SUM( IFNULL( PANIER.T7, 0 ) ) + SUM( IFNULL( PANIER.T8, 0 ) ) + SUM( IFNULL( PANIER.T9, 0 ) ) + SUM( IFNULL( PANIER.T10, 0 ) ) + SUM( IFNULL( PANIER.T11, 0 ) ) + SUM( IFNULL( PANIER.T12, 0 ) ) + SUM( IFNULL( PANIER.T13, 0 ) ) + SUM( IFNULL( PANIER.T14, 0 ) ) + SUM( IFNULL( PANIER.T15, 0 ) ) + SUM( IFNULL( PANIER.T16, 0 ) ) + SUM( IFNULL( PANIER.T17, 0 ) ) + SUM( IFNULL( PANIER.T18, 0 ) ) )
) <>0
)) AS sub
ORDER BY FPCOLO";
Donc je ne souhaite plus faire de jointure.
En revanche l'exemple que j'ai fourni me convient tout à fait à l'affichage.
Mais je ne sais pas faire l'insert à l'intérieur de la deuxième boucle.
Je te remercie d'avance si tu as une solution sans passer par la modification de mes requetes.