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

Requêtes MySQL Discussion :

[php/mysql] Aidez moi svp.


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Par défaut [php/mysql] Aidez moi svp.
    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.

  2. #2
    Membre éclairé Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Par défaut
    avant que swoq le modo a la massue arrive, mais z'y vite des balises codes


    me compte le nombre de message a poster en ecorchant son pseudo avant que le dit swoog s'enerve ( j'laisse bet les deux points, je sais pas ou ils sont sur mon clavier...)

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Par défaut
    personnellement, je pense que la solution a ce pbm se trouve plutot dans un autre forum notamment le forum base de données ou sql (je sais plus).

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Par défaut
    Juste une petite question avant toute chose: Une table client n'est elle pas necessaire pour que ton truc soit clair?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Par défaut
    bin la table client contient juste les informations relatives au client à savoir nom adresse etc...
    Je pense pas que cette table rende la chose plus clair :p

    J'espère que quelqu'un va pouvoir m'éclaircir

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Par défaut
    en gros tu récupere le chiffre d'affaire global (tout chantier confondu) pour un architecte, c'est ça?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recuperation de ma base BD apres la sauvegarde Aidez Moi SVP
    Par pop bob dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/07/2005, 16h38
  2. J'ai du mal à me décider ! Aidez moi svp :)
    Par VanHelsing dans le forum Mobiles
    Réponses: 18
    Dernier message: 01/06/2005, 14h59
  3. Je vois pas d'où vient mon erreur!! Aidez moi SVP
    Par liliboms dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 04/04/2005, 08h25
  4. Réponses: 29
    Dernier message: 11/05/2004, 13h18

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