Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2814 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème grosse requête PHP !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème grosse requête PHP !

n°1927961
Pyro390
Posté le 30-09-2009 à 14:59:26  profilanswer
 

Bonjour tout le monde !
 
Voila je dois transcrire un programme ACCESS en PHP.
 
Sous access, des requetes sont definies, et dans certaines d'elles, des requetes font appel a d'autre requetes...
 
Voici un exemple access :
 

Code :
  1. INSERT INTO [Exposition crédit notation hors opcvm] ( Cd_etablissement, Note_retenue_poss, Ligne_conf, [%li], Decouvert, [%de], garnatie_données, [%gd], Engagement_HB, [%ehb], Total_expo_credit, [%tt] )
  2. SELECT [T-110-exposition Crédit Notation hors opcvm].Cd_etablissement, note.Note_retenue_poss, Sum([T-110-exposition Crédit Notation hors opcvm].SommeDeLigne_conf) AS Ligne_conf, "" AS [%li], Sum([T-110-exposition Crédit Notation hors opcvm].SommeDeTirage_overdraft) AS Decouvert, "" AS [%de], Sum([T-110-exposition Crédit Notation hors opcvm].SommeDeGaranties_donnees) AS garnatie_données, "" AS [%gd], Sum([T-110-exposition Crédit Notation hors opcvm].SommeDeEngagements_HB) AS Engagement_HB, "" AS [%ehb], Sum([T-110-exposition Crédit Notation hors opcvm].SommeDeTotal_credit) AS Total_expo_credit, "" AS [%tt]
  3. FROM [note] LEFT JOIN [T-110-exposition Crédit Notation hors opcvm] ON note.Note_retenue_poss=[T-110-exposition Crédit Notation hors opcvm].Note_Retenue
  4. GROUP BY [T-110-exposition Crédit Notation hors opcvm].Cd_etablissement, note.Note_retenue_poss, "", "", "", "", ""
  5. HAVING ((([T-110-exposition Crédit Notation hors opcvm].Cd_etablissement)<>"" ));
  6. [/ :fou: code]
  7. Ci-dessus, [T-110-exposition Crédit Notation hors opcvm] est bel et bien une autre requete...
  8. Je me demande comment je peux bien faire de même en PHP...
  9. J'ai bien essayé ça :
  10. [code]$sql1 = "SELECT Reporting_test_neo.Cd_etablissement, Reporting_test_neo.Note_Retenue, Sum(Reporting_test_neo.Ligne_conf)
  11. AS Somme_De_Ligne_conf, Sum(Reporting_test_neo.Tirage_overdraft) AS Somme_De_Tirage_overdraft, Sum(Reporting_test_neo.Garanties_donnees)
  12. AS Somme_De_Garanties_donnees, Sum(Reporting_test_neo.Engagements_HB) AS Somme_De_Engagements_HB, Sum(Reporting_test_neo.Total_credit)
  13. AS Somme_De_Total_credit
  14. FROM Reporting_test_neo INNER JOIN date_Max ON Reporting_test_neo.Date=date_Max.Max_De_date_Multi_Mensuel
  15. GROUP BY Reporting_test_neo.Cd_etablissement, Reporting_test_neo.Note_Retenue, Reporting_test_neo.Date, Reporting_test_neo.Typ_ctpy,
  16. Reporting_test_neo.cd_Client_mixte
  17. HAVING (((Reporting_test_neo.Typ_ctpy) Not Like 'opcvm') AND ((Reporting_test_neo.cd_Client_mixte)='non mixte'));";
  18. $sql = "INSERT INTO exposition_credit_notation_hors_opcvm (cd_etablissement, note_retenue_poss, ligne_conf, per_li,
  19. decouvert, per_de, garantie_donnees, per_gd, engagement_hb, per_ehb, total_expo_credit, per_tt )
  20.      SELECT $sql1.cd_etablissement, note.note_retenue_poss,
  21.      Sum($sql1.somme_de_ligne_conf) AS ligne_conf, '' AS per_li,
  22.      Sum($sql1.somme_de_tirage_overdraft) AS decouvert, '' AS per_de,
  23.      Sum($sql1.somme_de_garanties_donnees) AS garantie_données, '' AS per_gd,
  24.      Sum($sql1.somme_de_engagements_hb) AS engagement_hb, '' AS per_ehb,
  25.      Sum($sql1.somme_de_total_credit) AS total_expo_credit, '' AS per_tt
  26.      FROM note LEFT JOIN $sql1
  27.      ON note.note_retenue_poss = $sql1.note_retenue
  28.      GROUP BY $sql1.cd_etablissement, note.note_retenue_poss, '', '', '', '', ''
  29.      HAVING ((($sql1.cd_etablissement)<>''));";


mais sans succès...
 
Avez-vous une idée???
 
Merci d'avance

mood
Publicité
Posté le 30-09-2009 à 14:59:26  profilanswer
 

n°1928012
d@kn1ko
Posté le 30-09-2009 à 16:18:33  profilanswer
 

$sql1.note_retenue ca ne marchera jamais y me semble. $sql1 c est une chaine de caractéres
 
moi je ferais un create view avec ta sql1 comme ca tu peux mettre la vue créé dans ta seconde requête
 
from tb1,lavue
where tb1.xxx=lavue.xxx
 
fait une recherche view mysql
 
ya surement plus simple  
 
tu peux aussi integrer la premiere dans le from de la seconde
 
from tb1,(select ....) as tb2
where tb1.xxx=tb2.xxx
 
je suis pas sur que <> fonctionne en mysql et tu as des ; en trop


Message édité par d@kn1ko le 30-09-2009 à 16:35:55
n°1928077
skeye
Posté le 30-09-2009 à 21:52:18  profilanswer
 

C'est pas une question de php, c'est une question de SQL. Là ce que tu fais en php c'est juste n'importe-quoi.


---------------
Can't buy what I want because it's free -
n°1928153
rufo
Pas me confondre avec Lycos!
Posté le 01-10-2009 à 10:20:45  profilanswer
 

Il faut "juste" que tu comprennes ce que font tes requêtes. Une fois que t'as compris, ben tu les reformules pour MySQL en utilisant les sous-requêtes, voire les tables temporaires si y'a pas moyen de faire autrement.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème grosse requête PHP !

 

Sujets relatifs
affichage des résultats d'une requête SQL[PHP] Problème de validation de schéma XSD
Problème requête select avec double résultatsProblème de session avec un objet Soap
Des Tests Fonctionnels sur requête SQLProbleme d'update mysql
xml problème affichage dans FirefoxProblème avec split
Plus de sujets relatifs à : Problème grosse requête PHP !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR