PB urgent requete multiple SQL

PB urgent requete multiple SQL - SQL/NoSQL - Programmation

Marsh Posté le 02-06-2010 à 00:10:31    


bonjour à tous voici mon probleme :  
 
j'ai une table qui se nomme dispo  , dans laquelle des agents marque leur disponibilités sous cette forme :          ref     |      Matricule      |     Creneau     |       Jour      |  Mois     |  
                                                                                                                                                         1     -       2415          -      JOUR        -         21          JANVIER
                                                                                                                                                         2     -       2587          -       nuit         -         06         JANVIER  
                                                                                                                                                         3     -       2587          -      24 H         -         21         JANVIER
 
OBJECTIF :  CREER UNE REQUETE SQL ME PERMETANT D'OBTENIR  LE RESULTAT SUIVANT : OBTENIR LES DISPONIBILITES DES AGENTS POUR LE 21 JANVIER  , CE QUI DOIT ME RESSORTIR NORMALEMENT CECI:  
 
                         2415    JOUR  
                         2587    24 H  
 
LA QUESTION EST COMMENT FAIRE  ?????  MERCI VOICI MON CODE POUR LE MOMENT    
 
 
RESULTAT OBTENU AVEC CE CODE  C'EST   2415  JOUR
                                                          2587  NUIT
                                                          2587  24 H
<body><?php
//REQUETE RECHERCHE DES MATRICULES
    $query = " SELECT * FROM dispo  ";
// on se connecte à MySQL
$db = mysql_connect('localhost', 'root', '');
// on sélectionne la base
mysql_select_db('CISDMG',$db);
     
 echo "<table border=\"0\" cellspacing=\"0\">";
 $result = mysql_query($query);
  while($row = mysql_fetch_array($result)){
  $LISTINGMATRICULE=$row['matricule'];
   $query2 = "SELECT * FROM dispo WHERE matricule IN $LISTINGMATRICULE  
      AND jour='21'  
      AND mois='JANVIER'";
   $result2 = mysql_query($query2);
  echo"<tr>";
  echo "<td><font color=black>".$row['MATRICULE']."</font></td>";
  echo "<td><font color=black>".$row['CRENEAU']."</font></td>";
   
  echo "</tr>";  
  }
  echo"</table>";
 
 mysql_close($db);
 ?>
</body>
</html>  
 
MERCI POUR LE COUP DE MAIN

Reply

Marsh Posté le 02-06-2010 à 00:10:31   

Reply

Marsh Posté le 02-06-2010 à 08:17:39    

Euh, comment dire...
 
1. Tu sais qu'il y a des formats de type date dans tous les SGBD ?
2. Tu ne penses pas que tu peux tout faire en une requête ?
3. Tu te rends compte que tu n'utilises pas du tout les résultats de ta 2ème requête ($row['MATRICULE'] correspond à la première)
4. Les css, c'est bien.
 
Bref, j'arrête là, mais si on garde l'idée générale de ton code (en gros, hein).

Code :
  1. $jour = 21;
  2. $mois='JANVIER';
  3. $query = "SELECT matricule, creneau FROM dispo WHERE Jour=$jour AND mois='$mois'";
  4. $result = mysql_query($query);
  5. echo '<table>';
  6. while ($row=mysql_fetch_array($result)) {
  7.     echo '<tr>';
  8.     echo '<td>'.$row['matricule'].'</td>';
  9.     echo '<td>'.$row['creneau'].'</td>';
  10.     echo '</tr>';
  11. }
  12. echo '</table>';


 
Et si tu as besoin de voir tous tes agents, tu fais ta requête avec tous tes agents, et dans la boucle while, tu testes :
 

Code :
  1. if ($row['jour'] == 21 && $row['Mois']== 'JANVIER') {
  2. }


Message édité par deliriumtremens le 03-06-2010 à 12:35:08
Reply

Marsh Posté le 02-06-2010 à 23:52:11    

Salut merci de ton aide précieuse ,  
 
justement comment puis je faire pour utiliser ce résultat ds ma seconde requete , car en fait ds la seconde il faut afficher tous les creneaux du jour concerné à partir de la liste de matricule . tu vois ?  
 
C'est pour cela que d'abord en requete 1 je recherche tous les matricules d'enregistrer sans doublons  
 
et dans ma requete 2 je voudrais me servir de cette liste d ematricule comme cela dans chaque colonne de mon tableau je n'ai pas besoin de réafficher le matricule .  
 
Merci

Reply

Marsh Posté le 03-06-2010 à 12:34:16    

Hmmm, je ne suis pas sûr d'avoir tout compris :
 
Qu'est-ce que tu veux afficher :
 
Un liste des matricules pour un jour donné (avec le créneau correspondant, sachant que logiquement, un matricule ne peut avoir qu'un seul créneau un jour donné, sinon ils vont être fatigués) ?
Si c'est ça, la première partie du code que je t'ai donné suffit.
 
 
Ou alors tu veux la liste de tous les jours, avec les matricules et créneaux correspondant ?
 
Ou alors tu veaux la liste de tous tes matricules, qu'ils soient dispos ou non, et indiquer simplement lesquels sont disponibles un jour donné ?
 
Fais un petit exemple de "tableau" que tu voudrais afficher, ce sera plus simple.

Reply

Marsh Posté le 03-06-2010 à 14:50:32    

fireman243 a écrit :


bonjour à tous voici mon probleme :  
 
j'ai une table qui se nomme dispo  , dans laquelle des agents marque leur disponibilités sous cette forme :          ref     |      Matricule      |     Creneau     |       Jour      |  Mois     |  
                                                                                                                                                         1     -       2415          -      JOUR        -         21          JANVIER
                                                                                                                                                         2     -       2587          -       nuit         -         06         JANVIER  
                                                                                                                                                         3     -       2587          -      24 H         -         21         JANVIER
 
OBJECTIF :  CREER UNE REQUETE SQL ME PERMETANT D'OBTENIR  LE RESULTAT SUIVANT : OBTENIR LES DISPONIBILITES DES AGENTS POUR LE 21 JANVIER  , CE QUI DOIT ME RESSORTIR NORMALEMENT CECI:  
 
                         2415    JOUR  
                         2587    24 H  
 
LA QUESTION EST COMMENT FAIRE  ?????  MERCI VOICI MON CODE POUR LE MOMENT    
 
 
RESULTAT OBTENU AVEC CE CODE  C'EST   2415  JOUR
                                                          2587  NUIT
                                                          2587  24 H
<body><?php
//REQUETE RECHERCHE DES MATRICULES
    $query = " SELECT * FROM dispo  ";
// on se connecte à MySQL
$db = mysql_connect('localhost', 'root', '');
// on sélectionne la base
mysql_select_db('CISDMG',$db);
     
 echo "<table border=\"0\" cellspacing=\"0\">";
 $result = mysql_query($query);
  while($row = mysql_fetch_array($result)){
  $LISTINGMATRICULE=$row['matricule'];
   $query2 = "SELECT * FROM dispo WHERE matricule IN $LISTINGMATRICULE  
      AND jour='21'  
      AND mois='JANVIER'";
   $result2 = mysql_query($query2);
  echo"<tr>";
  echo "<td><font color=black>".$row['MATRICULE']."</font></td>";
  echo "<td><font color=black>".$row['CRENEAU']."</font></td>";
   
  echo "</tr>";  
  }
  echo"</table>";
 
 mysql_close($db);
 ?>
</body>
</html>  
 
MERCI POUR LE COUP DE MAIN


 
Si tu veux, tu télécharges mon appli Astres (cf signature), j'ai justement une partie planning et des vérifications de disponibilités de personnes d'une équipe. Tu regardes, en particulier, le fichier /Astres/Common/DbPlanningLibrary.php pour l'aspect BD et requête SQL
Pour la mise en forme, je fichier /Astres/GUI/GiHighLevelsFormsPlanningLibrary.php


---------------
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
Reply

Marsh Posté le 03-06-2010 à 18:15:04    

salut deliriumtremens  
 
 
voici le tableau que je souhaiterai afficher  
 
 
- JANVIER -    -- 1 --  2 -- 3 --  4 -- 5 -- 6 -- 7 --- ............
2338        -    JOUR--  0 --24H - 0 -- NUIT.............
2415        -       0  --JOUR- .................................
2735        -    ...................................................      
 
TU VOIS EN FAIT LA PREMIERE COLONNE QUI M AFFICHE LES MATRICULES C BON J AI TROUVE . EN REVANCHE JE VOUDRAIS UNE  REQUETE QUI ME CHERCHE DANS MA TABLE LA DISPO DU GARS POUR LE JOUR DONNE  
 
PAR EXEMPLE TU PREND LE JOUR 1 , CA DOIT DONNER  UN TRUC DU STYLE  
 
SELECT  le creneau From dispo WHERE le jour = 1 , le mois = JANVIER et le matricule est dans la liste de la premiere colonne  
 
ainsi la logique est qu il va regarder tous les enregistrement ou le jour = 1 et le mois = janvier et il me ressort que le creneau si le matricule est présent .  
 
merci  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed