Bonjour tout le monde !

Bon je vais essayer de vous expliquer le mieux possible mon problème parce que c'est assez compliqué ^^

Alors voilà, je dispose de 5 tables :
- architectes_fiches (id,nom,prénom etc...)
- chantiers_architectes (id, id_dossier,nom chantiers, budget etc...)
- dossiers_architectes (id,id_architecte,date,commercial etc...)
- contrats_clients (id, id_architecte, id_chantier, chiffre_daffaire etc...)
- régions (id, region)

Je dois faire des requètes de sélections en calculant la somme du chiffre d'affaire (contenu dans la table "contrats")
Je vous donne un exemple :

On prend un architecte avec l'ID "1" et comme nom "Paul", on l'associe à un dossier et on lui ajoute 3 chantiers, ce qui nous donne, 1 dossier avec en "id_architecte = 1" et 3 chantiers avec id = 1,2,3 et comme "id_dossier = 1". J'espère que jusque là vous me suivez. Maintenant à la comptabilité, ils vont associé un client (ça on s'enfout pour la requète) avec 1 architecte et 1 seul chantier de ce même architecte. Donc si vous me suivez, on aura alors dans la table "contrats" : "id = 1, id_architecte = 1, et on va prendre le 2e chantier "id_chantier = 2", la comptabilité va lui mettre un chiffre d'affaire de 500€ par exemple.

Jusque là pas de soucis ! Mais quand on a plusieurs contrats pour le même architecte, il faut que lors de ma requète de sélection, je calcule la somme totale du chiffre d'affaire du dossier de cet architecte par ces chantiers ! J'ai réussi à faire cette requète mais le problème c'est qu'il ne m'affiche pas les chantiers n'étant associés à aucun contrats...

Je vous poste ma requète :

Dans la variable $champs, j'y ai mis les champs nécessaire et j'ai également mis : sum(clients_contrats.Tarif)
Tarif = chiffre d'affaire.

(je vous mets pas la liste parce que c'est trop long mais si c'est nécessaire, je la mettrais)

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
 
$sql = 'SELECT '.$champs.' FROM archis_chantiers, archis_dossiers, archis_fiches, clients_contrats WHERE archis_chantiers.id_dossier = archis_dossiers.id AND archis_dossiers.id_archi = archis_fiches.id AND clients_contrats.Ref_Chantier = archis_chantiers.id GROUP BY archis_chantiers.id ORDER BY archis_dossiers.id';
$req = mysql_query($sql) or die ('Erreur SQL : '.$sql.'<br />'.mysql_error());
$fields = mysql_num_fields($req);
 
for ($i = 0; $i < $fields; $i++) {
  $temp = mysql_field_name($req, $i);
  $header .= $temp . "\t";
} 
 
while($row = mysql_fetch_row($req)) {
  $line = '';
  foreach($row as $value) {                                           
      if ((!isset($value)) OR ($value == "")) {
          $value = "\t";
      }
      else {
          $value = str_replace('"', '""', $value);
          $value = '"' . $value . '"' . "\t";
      }
      $line .= $value;
  }
  $data .= trim($line)." €\n";
}
 
$data = str_replace("\r","",$data);
 
$file = "Archis_Total.xls";
$Fnm = '../../exports/'.$file;
$inF = fopen($Fnm,"w");
$data = str_replace("<br />","",$data);
$data = $header."\n".$data;  
fputs($inF,$data);
Comme voius l'aurez compris, une fois que j'ai selectionnée les données, je les mets dans un fichier excel, c'est pour les patrons...

J'espère que j'ai pu être assez clair, en tout cas, excuser moi si ça ne l'est pas

Ca fait une semaine que je galère avec, j'ai fouillé toute les docs MySQL pour les jointures mais j'ai pas trouvé mon bonheur donc HELLLP !

Merci d'avance.