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

Langage SQL Discussion :

Probleme affichage dans tableau selon requête


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 49
    Points : 25
    Points
    25
    Par défaut Probleme affichage dans tableau selon requête
    Bonjour les gens,

    Je suis bien embêté par un chti truc et j'ai pensé à vous, les sauveurs du php . Je préviens de suite, c'est bien hardi hein... J'utilise une base mysql.DONC :

    Supposez une requête qui sortent des diplomes dans l'ordre et pour chacun de ces diplomes, un effectif se rapportant à un mode d'examen.

    Exemple : Pour un "BEP Métiers de l'électrotechnique", j'ai :

    • 5 personnes qui vont passer en Mode DP
      23 en DG
      4 en DG/DP


    Déjà, faut saisir ça.


    Celui qui a fait le code a fait en sorte que ça crée un tuple dans une tableà chaque effectif. Donc là on 3 tuples. Seulement, pour chacun des tuples, dans la table avoir(diplome, nbdp, nbdg, nbdgdp), on aura :
    • 1 - ("BEP Métiers de l'électrotechnique", 5, 0, 0)
      2 - ("BEP Métiers de l'électrotechnique", 0, 23, 0)
      3 - ("BEP Métiers de l'électrotechnique", 0, 0, 4)


    Moi je voudrai qu'on ait tout simplement :
    • ("BEP Métiers de l'électrotechnique", 5, 23, 4)


    La requête passe dans chacun des tuples de la table avoir et affiche à chaque fois tous ce qu'il y a dedans dans un tableau html, et va à la ligne quand elle passe au suivant. Le tableau ressemble à ça (le premier, c'est ce qui existe, le second, ce que je désire) :
    _________________________
    | Diplomes | DP | DG | DGDP |
    | BEP Mt.El | 5 | 0 | 0 |
    | BEP Mt.El | 0 | 23 | 0 |
    | BEP Mt.El | 0 | 0 | 4 |
    |________________________|
    _________________________
    | Diplomes | DP | DG | DGDP |
    | BEP Mt.El | 5 | 23 | 4 |
    |________________________|

    En gros hein, j'ai pas de compte web perso pour vous faire voir, et vu que c'est en intranet, c'est la seule solution, le tableau comportant 10 fois plus de case, 100 fois plus de lignes, etc... donc je l'ai allégé au max ici.
    Mais le principe est là.

    Imaginez que l'on ai 3 * 100 diplomes alors qu'on pourrai en avoir que 100... Donc vouala, je suis bloqué depuis un bon moment, à imaginer des algos en tout genre qui n'aboutissent à rien.

    Je ne peux pas changer la structure de la table enfin modifier l'analyse de la chose, je ne suis là que pour changer quelques trucs. Comme ça. Vouala, à vous, si vous avez compris... Et désolé pour l'alignement des tableau...


  2. #2
    Membre actif Avatar de allyson
    Inscrit en
    Août 2003
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 261
    Points : 277
    Points
    277
    Par défaut
    salut;
    déjà pour la requête ce n'est pas ici==> forum SQL ou mysql! mais je peux te dire que c'est "group by la_filière"!
    ensuite t'obtiens un certain nombre d'enregistrements que t'affiches grace à une boucle while par exemple!
    cela te suffit-il?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 49
    Points : 25
    Points
    25
    Par défaut
    Ben... non, ça me suffit pas, j'mexplique. Aussi, pour le forum, pardon, jva changer. Mais pour ta réponse, ça ne marche pas, j'y avais déjà pensé. Ca va pas paske soit, il va marquer une seule fois la filière, mais il va aussi marquer a coté (5,0,0/0,23,0/0,0,4). Le group by marche pas donc, mais merci d'avoir essayé.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 49
    Points : 25
    Points
    25
    Par défaut
    Et euh, comment on fait pour bouger le topic vers le forum sql ?

  5. #5
    Membre actif Avatar de allyson
    Inscrit en
    Août 2003
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 261
    Points : 277
    Points
    277
    Par défaut
    avant de changer de forum, mets nous ton code pour qu'on voie d'où peut bien venir le problème

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 49
    Points : 25
    Points
    25
    Par défaut
    Lol l'est bien long le code j'vais tacher d'enlever le plus gros :

    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
     
    $reqcal="SELECT DipNum, DipNom, DipType from diplome where Session=".$sess.";
    $result=mysql_db_query($database,$reqcal);
     
    while($tuple=@mysql_fetch_array($result))
    {
      echo "<TR align=center>
             <TD>".$tuple["DipType"]." ".$tuple["DipNom"]."<BR>"."</TD>";
      $reqval="SELECT DP, DG, DG/DP where Dip.dipnum=".$tuple["DipNum"]."";
      $result2=mysql_db_query($database,$reqval);
      while($tuple2=@mysql_fetch_array($result2))
      {
        echo "<TD>".$tuple2["DP"]."</TD>
              <TD>".$tuple2["DG"]."</TD>
              <TD>".$tuple2["DGDP"]."<BR>"."</TD>
              </TR>";
      }
    }
    Vouala, c'est bcp simplifié. Très même.
    La première requête prend un diplome en fonction d'une session, la seconde prend tout ce qui se rapporte à ce diplome. Pour le bep dont je parlais, j'aurai donc 1 boucle dans la premiere requete, et trois dans la seconde. Ca me fait donc bien une fois le diplome, 3 fois un contenu différent. Je sais pas si le code va aider, mais le vouala.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 77
    Points : 55
    Points
    55
    Par défaut
    Je ne sais pas, mais ne faudrait-il pas utiliser les NULL au lieu des zero ?

    J'ai lu un tuto ici :

    http://sql.developpez.com/null/

    Mais je ne sais pas du tout si c la bonne solution, ni même si il y a une solution avec ca.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 49
    Points : 25
    Points
    25
    Par défaut
    Bon, merci pour le Null, mais je connaissais (pas dans ses moindres recoins, mais qd même) et j'ai essayé de m'en servir dans cet algo sans grande réussite. MAIS merci quand même d'avoir essayé .

    Faut que je bouge le topic mais je sais pas comment faire (enfin si il faut en recréer un, ça va, mais si ya une commande pour tout déplacer, ça pourrait être plus sympa ^^).

  9. #9
    Membre chevronné
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 289
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 289
    Points : 2 010
    Points
    2 010
    Par défaut
    Citation Envoyé par moulette85
    Faut que je bouge le topic mais je sais pas comment faire (enfin si il faut en recréer un, ça va, mais si ya une commande pour tout déplacer, ça pourrait être plus sympa ^^).
    Voeu exaucé

  10. #10
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 49
    Points : 25
    Points
    25
    Par défaut
    Merci pour le changement
    J'ai résolu le système en changeant la requête (c'était bien du sql, pardon................) :

    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
    SELECT DipType, DipNom, Eff_PRFQ, Eff_hors_PRFQ, 
      sum(IF (D.mode = 'PONC. DG', D.Effectif, 0)) AS PONCDG, 
      sum(IF (D.mode = 'PONC. DP', D.Effectif, 0)) AS PONCDP, 
      sum(IF (D.MODE = 'PONC. DG/DP', D.Effectif, 0)) AS PONCDGDP, 
      sum(IF (D.mode = 'CCF DP Mixte', D.Effectif, 0)) AS CCFDPMIXTE, 
      sum(IF (D.mode = 'CCF DP', D.Effectif, 0)) AS CCFDP, 
      sum(IF (D.mode = 'CCF DG', D.Effectif, 0)) AS CCFDG, 
      sum(IF (D.mode = 'CCF DP/DG', D.Effectif, 0)) AS CCFDPDG,  D.AntNumDept, OrgNom, Observations 
    FROM diplômes DP, demander D, sessions S, organisme O, avoir A 
    WHERE D.dipnum=DP.dipnum 
         AND S.sessionnum = D.sessionnum 
         AND O.OrgCode = D.OrgCode 
         AND A.DipNum = D.DipNum 
         AND A.SessionNum = D.SessionNum 
         AND A.OrgCode = O.OrgCode 
         AND S.sessionnum=".$sess." 
    GROUP BY DipNom, D.AntNumDept;
    Vouala, maintenant, ça marche. C'est cool ^^

  11. #11
    Membre actif Avatar de allyson
    Inscrit en
    Août 2003
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 261
    Points : 277
    Points
    277
    Par défaut
    je me disais bien que c'était du sql
    ravie que ce soit résolu
    ++

  12. #12
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 49
    Points : 25
    Points
    25
    Par défaut
    Merki ça fait plaisir !


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

Discussions similaires

  1. [MySQL] probleme d'affichage dans tableau
    Par ludo386 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/05/2010, 14h26
  2. [MySQL] probleme affichage dans un tableau avec double requetes
    Par roy-mustang dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 25/05/2009, 10h25
  3. click dans tableau résultat requête
    Par Pago dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 17/06/2008, 22h59
  4. Probleme affichage dans entry a partir d'un fichier texte
    Par HaaRt dans le forum GTK+ avec C & C++
    Réponses: 6
    Dernier message: 06/04/2007, 13h01
  5. Réponses: 8
    Dernier message: 03/04/2006, 20h28

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