Problème largeur colonne d'un tableau PHP/CSS

Problème largeur colonne d'un tableau PHP/CSS - PHP - Programmation

Marsh Posté le 20-04-2012 à 09:38:29    

Bonjour à tous,  
 
Je sais qu'il y à de nombreux topics sur comment aggrandir un colonne en php mais après différentes tentative je n'arrive pas a aggrandir mes colonne comme je le voudrais...
 
Donc j'ai un tableau qui reprend des données de ma bdd et qui les affiche, cependant il donne la taille du premier mot de l'en-tête de colonne.
Exemple : ma colonne "date" fera la taille du mot "date" et ma colonne nommée "responsable service" fera la taille du mot "responsable".
J'ai essayé en mettant des witdh ="300" dans les th/td, j'ai essayé en mettant dans width: 300px; dans mon css mais rien n'y fait ... la taille ne bouge pas ><
 
Donc voici le code qui affiche le tableau:

Code :
  1. echo "<table>
  2.   <tr><th><a href=\"consultDysNord.php?choixTri=11 \">Lieu</a>    </th>
  3.    <th><a href=\"consultDysNord.php?choixTri=0 \">Numero</a>    </th>
  4.    <th><a href=\"consultDysNord.php?choixTri=1 \">Date</a>     </th>
  5.    <th><a href=\"consultDysNord.php?choixTri=2 \">Redacteur</a>   </th>
  6.    <th><a href=\"consultDysNord.php?choixTri=3 \">Responsable Curatif</a> </th>
  7.    <th><a href=\"consultDysNord.php?choixTri=4 \">Responsable Service</a> </th>
  8.    <th><a href=\"consultDysNord.php?choixTri=5 \">Type</a>     </th>
  9.    <th><a href=\"consultDysNord.php?choixTri=6 \">Nature</a>    </th>
  10.    <th><a href=\"consultDysNord.php?choixTri=7 \">Processus Concerné</a> </th>
  11.    <th><a href=\"consultDysNord.php?choixTri=8 \">Service Concerné</a>  </th>
  12.    <th><a href=\"consultDysNord.php?choixTri=9 \">Client</a>    </th>
  13.    <th><a href=\"consultDysNord.php?choixTri=10 \">CI</a>     </th>
  14.    <th> Description </th>
  15.   </tr>";
  16.  $req = mysql_query("SELECT * from ea" ) or die(mysql_error());
  17.  // on fait une boucle qui va faire un tour pour chaque enregistrement  
  18.  $i=0;
  19.  while($data = mysql_fetch_assoc($req))
  20.  {
  21.   if($i%2==0)
  22.    echo"
  23.    <tr class=\"tab1\">
  24.     <td>$data[id_lieu]  </td>
  25.     <td>$data[num]   </td>
  26.     <td>$data[date]   </td>
  27.     <td>$data[redacteur] </td>
  28.     <td>$data[respCur]  </td>
  29.     <td>$data[respSer]  </td>
  30.     <td>$data[type]   </td>
  31.     <td>$data[nature]  </td>
  32.     <td>$data[processus] </td>
  33.     <td>$data[service]  </td>
  34.     <td>$data[client]  </td>
  35.     <td>$data[CI]   </td>
  36.     <td>$data[description] </td>
  37.    </tr>";
  38.   else
  39.    echo"
  40.    <tr class=\"tab2\">
  41.     <td>$data[id_lieu]  </td>
  42.     <td>$data[num]   </td>
  43.     <td>$data[date]   </td>
  44.     <td>$data[redacteur] </td>
  45.     <td>$data[respCur]  </td>
  46.     <td>$data[respSer]  </td>
  47.     <td>$data[type]   </td>
  48.     <td>$data[nature]  </td>
  49.     <td>$data[processus] </td>
  50.     <td>$data[service]  </td>
  51.     <td>$data[client]  </td>
  52.     <td>$data[CI]   </td>
  53.     <td>$data[description] </td>
  54.    </tr>";
  55.    $i=$i+1;
  56.  }


 
Ici vous pouvez voir "class = tab1" ou "class = tab2" ce qui correspond a colorer une ligne sur deux pour mieux différencier le tableau
 
Et voici le code css (complet au cas ou mon problème viennent d'une autre partie du css...)
 

Code :
  1. table{
  2. border: solid black 1px;
  3. border-collapse: collapse;
  4. }
  5. /*tr{  
  6. width:100%;
  7. }*/
  8. td,th{
  9. height: 50px;
  10. width: 300px;
  11. border: solid black 1px;
  12. /*border-collapse: collapse;*/
  13. }
  14. .haut{
  15. position: absolute;
  16.     top: 0%;
  17.     left: 0%;
  18. border-bottom: 2px solid #CCCDCD;
  19. width:100%;
  20. padding:0px;
  21. }
  22. h1{
  23. margin:0;
  24. padding-top:50px;
  25. text-align: center;
  26. font-size: 40px;
  27. }
  28. .hautGauche {
  29. float: left;
  30. top: 0px;
  31. left: 0px;
  32. padding: 0px;
  33. }
  34. .menu{
  35. position : absolute;
  36. top:150px;
  37. left:0%;
  38. /*border:solid 1px red;*/
  39. border-right: 2px solid #CCCDCD;
  40. padding:05px;
  41. width:200px;
  42. }
  43. ul{
  44. list-style-type: none;
  45. margin:0px;
  46. }
  47. li{
  48. background-color:#CCCDCD;
  49. margin:1px;
  50. padding:5px;
  51. }
  52. .tab1{
  53. background-color:#1CC1EA;
  54. text-align:center;
  55. width:500px;
  56. }
  57. .tab2{
  58. background-color:#C8EEF7;
  59. text-align:center;
  60. }
  61. .tab3{
  62. background-color:#00ED67;
  63. text-align:center;
  64. }
  65. .corp{
  66. position : absolute;
  67. top:115px;
  68. left:195px;
  69. /*border-left:2px solid #CCCDCD;*/
  70. padding:20px;
  71. }
  72. .connexion{
  73. margin:50px;
  74. border: solid black 1px;
  75. }
  76. .droite{
  77. text-align:right;
  78. padding:5px;
  79. }
  80. .centre{
  81. text-align:center;
  82. padding-left:10px;
  83. padding-right:10px;
  84. }
  85. textarea{
  86. width: 600px;
  87. height: 150px;
  88. }
  89. .style_input{
  90. width:100px;
  91. }


 
Voila j'espère avoir une solution à mon problème parce que je m'arrache les cheveux sans résultats ...
 

Reply

Marsh Posté le 20-04-2012 à 09:38:29   

Reply

Marsh Posté le 20-04-2012 à 09:48:29    

Dans ton code php, c'est où que tu fermes ton tableau?
 
Sinon, dans le css, je mettrais plutôt tr.tab1 plutôt que juste .tab1, idem pour .tab2. Et c'est normal d'avoir un width: 500px dans .tab1? Parce que si tu contrains la largeur de la ligne du tableau, je vois pas comment les cellules td vont pouvoir évoluer en taille :/


---------------
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 20-04-2012 à 09:57:03    

Le width: 500px était une erreur dans mes tentatives de modifications etc mais c'est bon il est en commentaires, mais le problème n'est pas résolu pour autant :( les colonnes ne s'aggrandissent toujours pas  :/
 
Et je rajoute que mes colonnes ne prennent pas la largeur du plus grand mot de l'en tête mais du plus grand mot de la colonne entière. ;)


Message édité par scribou le 20-04-2012 à 09:59:03
Reply

Marsh Posté le 20-04-2012 à 10:04:01    

essaye avec des max-width.


---------------
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 20-04-2012 à 10:10:14    

ça ne marche pas non plus avec les max-width. ...
Et je viens de vérifier si mon css modifie bien mon tableau, et il le modifie bien (j'ai mis le border: solid black 10px au lieu de 1px et il a bien été modifié)
Vraiment je ne comprend pas ...


Message édité par scribou le 20-04-2012 à 10:18:24
Reply

Marsh Posté le 20-04-2012 à 10:39:46    

Et tu le fermes bien ton <table>?


---------------
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 20-04-2012 à 10:41:22    

Oui oui il est bien fermé, il est fermé après une partie du code qui est en commentaire, c'est pour ça qu'il n'est pas affiché mais il est fermé, et le <div> est fermé aussi juste après le <table>


Message édité par scribou le 20-04-2012 à 10:41:41
Reply

Marsh Posté le 23-04-2012 à 10:28:20    

Alors personne n'a de solution à mon problème ?

Reply

Marsh Posté le 23-04-2012 à 11:00:48    

Ben les solutions qui devraient marcher ne marchent pas. Soit il nous manque des données (code html de la page complète, par ex, qui permettrait de voir que le pb vient d'autre part), soit tu n'as pas correctement "implémenté" les solutions qui devraient marcher...


---------------
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 24-04-2012 à 08:15:49    

Ben je ne comprend pas, je vais remettre tous les codes pour essayer de trouver le problème :
 
Ici le code du tableau (quelque peu modifier depuis la dernière fois)

Code :
  1. <?php
  2. session_start();
  3. if(! isset($_SESSION['identifiant'])) {
  4.     header('Location: connexion.php');
  5.     exit();
  6. }
  7. $connection = mysql_pconnect("127.0.0.1","root","" );
  8. $database = mysql_select_db("db", $connection);
  9. include "fctAux.inc.php";
  10. $droitAcces = $_SESSION['droitAcces'];
  11. enTete("Répertorier un dysfonctionnement pour l'URIS Nord" );
  12. haut();
  13. include "menu.php";
  14. echo "<div class=\"corp\">";
  15.  echo"<h2>Consultation des Dysfonctionnements de l'URIS Nord </h2>";
  16.   $choixTri=0;
  17.   if(isset($_GET['choixTri']))
  18. {
  19.  $choixTri=$_GET['choixTri'];
  20. }
  21.   switch($choixTri){  // permet d'organiser le tableau par ordre alphabétique, selon l'option choisi (par numéro, date, redacteur etc.)
  22.  case 0: $requete = "SELECT * FROM `eanantes` ORDER BY `eanantes`.`num` ASC ";
  23.       break;
  24.  case 1: $requete = "SELECT * FROM `eanantes` ORDER BY `eanantes`.`date` ASC ";
  25.       break;
  26.  case 2: $requete = "SELECT * FROM `eanantes` ORDER BY `eanantes`.`redacteur` ASC ";
  27.       break;
  28.  case 3: $requete = "SELECT * FROM `eanantes` ORDER BY `eanantes`.`respCur` ASC ";
  29.       break;
  30.  case 4: $requete = "SELECT * FROM `eanantes` ORDER BY `eanantes`.`respSer` ASC ";
  31.       break;
  32.  case 5: $requete = "SELECT * FROM `eanantes` ORDER BY `eanantes`.`type` ASC ";
  33.       break;
  34.  case 6: $requete = "SELECT * FROM `eanantes` ORDER BY `eanantes`.`nature` ASC ";
  35.    break;
  36.  case 7: $requete = "SELECT * FROM `eanantes` ORDER BY `eanantes`.`processus` ASC ";
  37.       break;
  38.  case 8: $requete = "SELECT * FROM `eanantes` ORDER BY `eanantes`.`service` ASC ";
  39.       break;
  40.  case 9: $requete = "SELECT * FROM `eanantes` ORDER BY `eanantes`.`client` ASC ";
  41.       break;
  42.  case 10: $requete = "SELECT * FROM `eanantes` ORDER BY `eanantes`.`CI` ASC ";
  43.       break;
  44.  case 11: $requete = "SELECT * FROM `eanantes` ORDER BY `eanantes`.`id_lieu` ASC ";
  45.       break;
  46.  default: $requete = "SELECT * FROM `eanantes` ORDER BY `eanantes`.`num` ASC ";
  47.       break;
  48. }
  49. //affichage du tableau, avec les en-tête qui permettent de ranger une colonne comme expliqué ci-dessus
  50. echo "<table>
  51.   <tr><th><a href=\"consultDysNordNantes.php?choixTri=11 \">Lieu</a>    </th>
  52.    <th><a href=\"consultDysNordNantes.php?choixTri=0 \">Numero</a>    </th>
  53.    <th><a href=\"consultDysNordNantes.php?choixTri=1 \">Date</a>    </th>
  54.    <th><a href=\"consultDysNordNantes.php?choixTri=2 \">Redacteur</a>   </th>
  55.    <th><a href=\"consultDysNordNantes.php?choixTri=3 \">Responsable Curatif</a></th>
  56.    <th><a href=\"consultDysNordNantes.php?choixTri=4 \">Responsable Service</a></th>
  57.    <th><a href=\"consultDysNordNantes.php?choixTri=5 \">Type</a>    </th>
  58.    <th><a href=\"consultDysNordNantes.php?choixTri=6 \">Nature</a>    </th>
  59.    <th><a href=\"consultDysNordNantes.php?choixTri=7 \">Processus Concerné</a> </th>
  60.    <th><a href=\"consultDysNordNantes.php?choixTri=8 \">Service Concerné</a> </th>
  61.    <th><a href=\"consultDysNordNantes.php?choixTri=9 \">Client</a>    </th>
  62.    <th><a href=\"consultDysNordNantes.php?choixTri=10 \">CI</a>    </th>
  63.    <th> Description </th>
  64.    <th> Action Curative </th>
  65.   </tr>";
  66.  $req = mysql_query($requete) or die(mysql_error());
  67.  $i=0;
  68.  // on fait une boucle qui va faire un tour pour chaque enregistrement  
  69.  while($data = mysql_fetch_assoc($req))
  70.  {
  71.   if($i%2==0)
  72.   {   //affichange du tableau, fais appel au design "tab1" si le nombre i est pair
  73.    echo"
  74.    <tr class=\"tab1\">
  75.     <td>$data[id_lieu]  </td>
  76.     <td>$data[num]   </td>
  77.     <td>$data[date]   </td>
  78.     <td>$data[redacteur] </td>
  79.     <td>$data[respCur]  </td>
  80.     <td>$data[respSer]  </td>
  81.     <td>$data[type]   </td>
  82.     <td>$data[nature]  </td>
  83.     <td>$data[processus] </td>
  84.     <td>$data[service]  </td>
  85.     <td>$data[client]  </td>
  86.     <td>$data[CI]   </td>
  87.     <td>$data[description] </td>
  88.     <td>$data[actionCur] </td>";
  89.     if ($data['actionCur'] == NULL)
  90.     {
  91.      echo"<td><a href=\"ajoutActionCur.php?lieu=".$data['id_lieu']." &num=".$data['num']."\">Ajouter Action Curative</a></td>";
  92.     }
  93.     else{echo"<td></td>";}
  94.    echo"</tr>";
  95.   }
  96.   else  //fait appel au design "tab2" si le nombre i est impair
  97.   {
  98.    echo"
  99.    <tr class=\"tab2\">
  100.     <td>$data[id_lieu]  </td>
  101.     <td>$data[num]   </td>
  102.     <td>$data[date]   </td>
  103.     <td>$data[redacteur] </td>
  104.     <td>$data[respCur]  </td>
  105.     <td>$data[respSer]  </td>
  106.     <td>$data[type]   </td>
  107.     <td>$data[nature]  </td>
  108.     <td>$data[processus] </td>
  109.     <td>$data[service]  </td>
  110.     <td>$data[client]  </td>
  111.     <td>$data[CI]   </td>
  112.     <td>$data[description] </td>
  113.     <td>$data[actionCur] </td>";
  114.     if ($data['actionCur'] == NULL)
  115.     {
  116.      echo"<td><a href=\"ajoutActionCur.php?lieu=".$data['id_lieu']." &num=".$data['num']."\">Ajouter Action Curative</a></td>";
  117.     }
  118.     else{echo"<td></td>";}
  119.    echo"</tr>";
  120.   }
  121.   $i=$i+1;
  122.  }
  123.   echo"</table>";
  124.  
  125.    
  126. echo"</div>";
  127. ?>


 
 
Et Ici le code css (qui a du être lui aussi un peu modifier):

Code :
  1. table{
  2. border: solid black 1px;
  3. border-collapse: collapse;
  4. }
  5. /*tr{  
  6. width:100%;
  7. }*/
  8. td{
  9. width: 100px;
  10. border: solid black 1px;
  11. /*border-collapse: collapse;*/
  12. }
  13. th{
  14. width: 200px;
  15. border: solid black 1px;
  16. }
  17. .haut{
  18. position: absolute;
  19.     top: 0%;
  20.     left: 0%;
  21. border-bottom: 2px solid #CCCDCD;
  22. width:100%;
  23. padding:0px;
  24. }
  25. h1{
  26. margin:0;
  27. padding-top:50px;
  28. text-align: center;
  29. font-size: 40px;
  30. }
  31. .hautGauche {
  32. float: left;
  33. top: 0px;
  34. left: 0px;
  35. padding: 0px;
  36. }
  37. .menu{
  38. position : absolute;
  39. top:150px;
  40. left:0%;
  41. /*border:solid 1px red;*/
  42. border-right: 2px solid #CCCDCD;
  43. padding:05px;
  44. width:200px;
  45. }
  46. ul{
  47. list-style-type: none;
  48. margin:0px;
  49. }
  50. li{
  51. background-color:#CCCDCD;
  52. margin:1px;
  53. padding:5px;
  54. }
  55. tr.tab1{
  56. background-color:#1CC1EA;
  57. text-align:center;
  58. width: 100px;
  59. border: solid black 1px;
  60. /*width:500px;*/
  61. }
  62. tr.tab2{
  63. background-color:#C8EEF7;
  64. text-align:center;
  65. width: 100px;
  66. border: solid black 1px;
  67. }
  68. .tab3{
  69. background-color:#00ED67;
  70. text-align:center;
  71. }
  72. .corp{
  73. position : absolute;
  74. top:115px;
  75. left:195px;
  76. /*border-left:2px solid #CCCDCD;*/
  77. padding:20px;
  78. }
  79. .connexion{
  80. margin:50px;
  81. border: solid black 1px;
  82. }
  83. .droite{
  84. text-align:right;
  85. padding:5px;
  86. width: 200px;
  87. border: solid black 1px;
  88. /*border-collapse: collapse;*/
  89. }
  90. .centre{
  91. text-align:center;
  92. padding-left:10px;
  93. padding-right:10px;
  94. border: solid black 1px;
  95. /*border-collapse: collapse;*/
  96. }
  97. textarea{
  98. width: 600px;
  99. height: 150px;
  100. }
  101. .style_input{
  102. width:100px;
  103. }


 
Si il y a besoin de voir un autre code il suffit de demander ;)
J'espère vraiment pouvoir fixer la largeur de mes colonnes sinon mon tableau ne ressemble à rien :/

Reply

Marsh Posté le 24-04-2012 à 08:15:49   

Reply

Marsh Posté le 24-04-2012 à 08:48:08    

Et Je rajoute aussi avant que ce ne soit demander, le code source de la page  

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <title>Répertorier un dysfonctionnement pour l'URIS Nord</title>
  5. <link href="design.css" type="text/css" rel="stylesheet"></head>
  6. <body>
  7. <div class="haut"><img class="hautGauche" src="images.jpg"><h1>Qualigram Evolution</h1></div>    <div class="menu">
  8.    Vous travaillez sur l'Antenne de Nantes
  9.    <ul>
  10.    Antenne de Nantes
  11.    <li><a href="ajoutDysNordNantes.php">Ajouter un Dysfonctionnement</a></li>
  12.    <li><a href="consultDysNordNantes.php">Consulter les Dysfonctionnements</a></li>
  13.    </ul>
  14.    <ul>
  15.    Antenne de Rouen
  16.    <li><a href="consultDysNordRouen.php">Consulter les Dysfonctionnements</a></li>
  17.    </ul>
  18.    <ul>
  19.    Antenne de Lille
  20.    <li><a href="consultDysNordLille.php">Consulter les Dysfonctionnements</a></li>
  21.    </ul>
  22.    <ul>
  23.    Antenne de Londres
  24.    <li><a href="consultDysNordLondres.php">Consulter les Dysfonctionnements</a></li>
  25.    </ul>
  26.    <ul>
  27.    Antenne de Nancy
  28.    <li><a href="consultDysNordNancy.php">Consulter les Dysfonctionnements</a></li>
  29.    </ul>
  30.    <ul>
  31.    Ensemble de l'URIS Nord
  32.    <li><a href="consultDysNord.php">Consulter les Dysfonctionnements sur l'URIS Nord</a></li>
  33.    </ul>
  34.    <p><a href="deconnexion.php">Se déconnecter</a></p>
  35.    </div>
  36.   <div class="corp"><h2>Consultation des Dysfonctionnements de l'URIS Nord </h2><table>
  37.   <tr><th><a href="consultDysNordNantes.php?choixTri=11 ">Lieu</a>    </th>
  38.    <th><a href="consultDysNordNantes.php?choixTri=0 ">Numero</a>    </th>
  39.    <th><a href="consultDysNordNantes.php?choixTri=1 ">Date</a>    </th>
  40.    <th><a href="consultDysNordNantes.php?choixTri=2 ">Redacteur</a>   </th>
  41.    <th><a href="consultDysNordNantes.php?choixTri=3 ">Responsable Curatif</a></th>
  42.    <th><a href="consultDysNordNantes.php?choixTri=4 ">Responsable Service</a></th>
  43.    <th><a href="consultDysNordNantes.php?choixTri=5 ">Type</a>    </th>
  44.    <th><a href="consultDysNordNantes.php?choixTri=6 ">Nature</a>    </th>
  45.    <th><a href="consultDysNordNantes.php?choixTri=7 ">Processus Concerné</a> </th>
  46.    <th><a href="consultDysNordNantes.php?choixTri=8 ">Service Concerné</a> </th>
  47.    <th><a href="consultDysNordNantes.php?choixTri=9 ">Client</a>    </th>
  48.    <th><a href="consultDysNordNantes.php?choixTri=10 ">CI</a>    </th>
  49.    <th> Description </th>
  50.    <th> Action Curative </th>
  51.   </tr>
  52.    <tr class="tab1">
  53.     <td>Nantes  </td>
  54.     <td>64   </td>
  55.     <td>20-04-2012   </td>
  56.     <td>---- </td>
  57.     <td>----  </td>
  58.     <td>----  </td>
  59.     <td>----   </td>
  60.     <td>----  </td>
  61.     <td>---- </td>
  62.     <td>----  </td>
  63.     <td>----  </td>
  64.     <td>0   </td>
  65.     <td>Test1 </td>
  66.     <td>vezvzervezzv telalala test 64 </td><td></td></tr>
  67.    <tr class="tab2">
  68.     <td>Nantes  </td>
  69.     <td>65   </td>
  70.     <td>20-04-2012   </td>
  71.     <td>---- </td>
  72.     <td>----  </td>
  73.     <td>----  </td>
  74.     <td>----   </td>
  75.     <td>----  </td>
  76.     <td>---- </td>
  77.     <td>----  </td>
  78.     <td>----  </td>
  79.     <td>0   </td>
  80.     <td>eczeczce </td>
  81.     <td>Tapez eczeczecz </td><td></td></tr>
  82.    <tr class="tab1">
  83.     <td>Nantes  </td>
  84.     <td>66   </td>
  85.     <td>20-04-2012   </td>
  86.     <td>ADAM Fabrice </td>
  87.     <td>BADROU Mohamed  </td>
  88.     <td>----  </td>
  89.     <td>----   </td>
  90.     <td>----  </td>
  91.     <td>---- </td>
  92.     <td>----  </td>
  93.     <td>----  </td>
  94.     <td>0   </td>
  95.     <td>Tapez votre description </td>
  96.     <td>test 66 </td><td></td></tr>
  97.    <tr class="tab2">
  98.     <td>Nantes  </td>
  99.     <td>67   </td>
  100.     <td>20-04-2012   </td>
  101.     <td>AUGER Chrystelle </td>
  102.     <td>BALLAND Evangéline  </td>
  103.     <td>----  </td>
  104.     <td>----   </td>
  105.     <td>----  </td>
  106.     <td>---- </td>
  107.     <td>----  </td>
  108.     <td>----  </td>
  109.     <td>0   </td>
  110.     <td>Tapez votre description </td>
  111.     <td>lalalilalere </td><td></td></tr>
  112.    <tr class="tab1">
  113.     <td>Nantes  </td>
  114.     <td>68   </td>
  115.     <td>20-04-2012   </td>
  116.     <td>---- </td>
  117.     <td>----  </td>
  118.     <td>Le Roy Olivier  </td>
  119.     <td>----   </td>
  120.     <td>----  </td>
  121.     <td>---- </td>
  122.     <td>----  </td>
  123.     <td>----  </td>
  124.     <td>0   </td>
  125.     <td>Tapez votre description </td>
  126.     <td>lalalalierelalalieleialaielzialeizle </td><td></td></tr>
  127.    <tr class="tab2">
  128.     <td>Nantes  </td>
  129.     <td>69   </td>
  130.     <td>23-04-2012   </td>
  131.     <td>---- </td>
  132.     <td>----  </td>
  133.     <td>----  </td>
  134.     <td>----   </td>
  135.     <td>----  </td>
  136.     <td>---- </td>
  137.     <td>----  </td>
  138.     <td>----  </td>
  139.     <td>0   </td>
  140.     <td>J'essai de faire un truc et de
  141. l'amener a la ligne </td>
  142.     <td>Test action Cur </td><td></td></tr>
  143.    <tr class="tab1">
  144.     <td>Nantes  </td>
  145.     <td>70   </td>
  146.     <td>23-04-2012   </td>
  147.     <td>ASSOCIE Matthias </td>
  148.     <td>ASSOCIE Matthias  </td>
  149.     <td>----  </td>
  150.     <td>----   </td>
  151.     <td>----  </td>
  152.     <td>---- </td>
  153.     <td>----  </td>
  154.     <td>----  </td>
  155.     <td>0   </td>
  156.     <td>blablablabla </td>
  157.     <td>Tapez votre action curative </td><td></td></tr>
  158.    <tr class="tab2">
  159.     <td>Nantes  </td>
  160.     <td>71   </td>
  161.     <td>23-04-2012   </td>
  162.     <td>---- </td>
  163.     <td>----  </td>
  164.     <td>----  </td>
  165.     <td>----   </td>
  166.     <td>----  </td>
  167.     <td>---- </td>
  168.     <td>----  </td>
  169.     <td>----  </td>
  170.     <td>0   </td>
  171.     <td>blablablablablabla </td>
  172.     <td>zevezrvrevervezv </td><td></td></tr>
  173.    <tr class="tab1">
  174.     <td>Nantes  </td>
  175.     <td>72   </td>
  176.     <td>23-04-2012   </td>
  177.     <td>---- </td>
  178.     <td>----  </td>
  179.     <td>----  </td>
  180.     <td>----   </td>
  181.     <td>----  </td>
  182.     <td>---- </td>
  183.     <td>----  </td>
  184.     <td>----  </td>
  185.     <td>0   </td>
  186.     <td>epzokcojizec </td>
  187.     <td>svedv  </td><td></td></tr>
  188.    <tr class="tab2">
  189.     <td>Nantes  </td>
  190.     <td>73   </td>
  191.     <td>24-04-2012   </td>
  192.     <td>---- </td>
  193.     <td>----  </td>
  194.     <td>----  </td>
  195.     <td>----   </td>
  196.     <td>----  </td>
  197.     <td>---- </td>
  198.     <td>----  </td>
  199.     <td>----  </td>
  200.     <td>0   </td>
  201.     <td>efevvrtvr </td>
  202.     <td> </td><td><a href="ajoutActionCur.php?lieu=Nantes &num=73">Ajouter Action Curative</a></td></tr></table></div>

Reply

Marsh Posté le 24-04-2012 à 10:48:06    

Petit conseil pour ton switch concernant le tri. Mets plutôt les champs servant au tri dans un tableau comme ça, tu transformes ton horrible switch en :

Code :
  1. $ArrayChampsTri = array("num", "date", "redacteur", ...);
  2. $sOrderBy = "";
  3. if (isset($ArrayChampsTri[$choixTri])) {
  4.    $sOrderBy = " ORDER BY ".$ArrayChampsTri[$choixTri];
  5. }
  6.  
  7. $requete = "SELECT * FROM `eanantes` $sOrderBy";


---------------
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 24-04-2012 à 11:26:10    

Merci pour le switch, c'est modifier ;)
Mais toujours pas trouvé l'erreur de ces colonnes qui ne veulent pas s'agrandir ? :/

Reply

Marsh Posté le 24-04-2012 à 12:45:36    

Plusieurs choses :
1) t'as remarqué que ton th a un width de 200px alors que ton td a un width de 100px :??: Le navigateur va forcément prendre le plus grand
 
2) dans tes td, pas mal de valeurs ont des espaces à la fin.


---------------
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 24-04-2012 à 13:40:59    

Oui tu as raison j'ai remis le width tu td a 200px mais rien ne change
Et dans les td les valeurs n'ont pas vraiment des espaces mais j'ai aligné les balises via des tabulations par soucis de lecture, je n'aurais peut être pas dû ? Je ne crois pas que cela influt sur le code généré ?
 
Penses tu que le fait de ne pas pouvoir modifier la taille des colonnes et surtout le fait qu'elles s'adaptent à la longueur de la plus grande chaine de caractères puisse venir d'ailleurs que du code de la page et du css ?

Reply

Marsh Posté le 24-04-2012 à 14:40:27    

Ca fait pareil sur d'autres navigateurs?


---------------
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 24-04-2012 à 14:48:39    

Oui, je suis avec ie (obligé au boulot ...) mais je viens de tester sur Firefox et le résultat est le même  
Excepté pour la date, ou avant elle s'affichait un nombre par ligne (20 -> ligne 1,-04 ligne 2, -2012 ligne3) maintenant elle est affichée sur une seule ligne au format  (20-04-2012)
Mais j'ai l'impression que mon tableau ne veut pas dépasser la taille de la page, hors je ne crois pas lui avoir demandé ça :/


Message édité par scribou le 24-04-2012 à 14:52:10
Reply

Marsh Posté le 24-04-2012 à 14:55:36    

Tu devrais utiliser Firebug pour voir à quel moment ton width:100 n est pas pris en compte. C'est très efficace !

Reply

Marsh Posté le 24-04-2012 à 15:07:59    

Bon alors j'ai testé avec firebug mais je ne trouve pas plus pourquoi mon tableau respecte impérativement la taille de la page, grâce a firebug j'ai pu voir ce que ça donnait si mon tableau se décalait par dessus le menu, en effet là les colonnes s'agrandissent un peu même si ce n'est pas suffisant pour que chaque colonne fasse la bonne taille (et surtout ça se voit car elles ne font pas la même taille)
Mais il ne veut pas dépasser la taille de la page le p'tit salop ><

Reply

Marsh Posté le 24-04-2012 à 15:12:50    

A ben ça, c'est normal. Si ton body à un width de 100% (ce qui est le cas normalement), le contenu de ta page web ne dépassera pas la largeur de ton body sauf si un élément de la page a une largeur plus importante provoquée par un contenu ne pouvant aller à la ligne (texte insécable, image très large...).


---------------
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 24-04-2012 à 15:19:21    

Ok et donc pour remédier à ça j'aurais juste à faire un  
body{ width: 150%;} ? (je viens de tester le body width 150% et même 300% mais ça ne marche pas :/ )
(ou autre s'il y a moyen de faire que le body grandisse uniquement si nécessaire je suis preneur)
 
Et sinon question hors sujet mais en passant, plutot que de refaire un topic peut etre inutile :  
J'ai affiché différente tables sql dans un seul tableau de mon php, et je voudrais exécuter un order by sur le tableau (via la méthode que tu m'a donné plus haut) est-ce possible ou c'est pas possible de faire un order by sur plusieurs table sql "coller" les unes aux autres dans un tableau ?
(Si nécessaire je peux refaire un topic mais je préfère demander vite fais ici)


Message édité par scribou le 24-04-2012 à 15:22:45
Reply

Marsh Posté le 24-04-2012 à 16:29:53    

ben oui, ça s'appelle faire des jointures entre les tables (en SQL) et tu peux utiliser plusieurs champs dans le order by, des champs provenant de différentes tables (listées dans le FROM, bien entendu).


---------------
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 24-04-2012 à 16:32:15    

Oui oui je sais qu'il y à les jointures possible mais j'ai pas trouvé la solution, j'ai essayé de réutiliser quelque chose (que tu as fait sur un autre topic d'ailleurs) et ça ressemble à ça :

Code :
  1. $choixTri=0;
  2. if(isset($_GET['choixTri']))
  3. {
  4.  $choixTri=$_GET['choixTri'];
  5. }
  6. $ArrayChampsTri = array("num", "date", "redacteur", "respCur", "respSer", "type", "nature", "processus", "service", "client", "CI", "id_lieu" );
  7. $sOrderBy = "";
  8. if (isset($ArrayChampsTri[$choixTri]))
  9. {
  10.     $sOrderBy = " ORDER BY ".$ArrayChampsTri[$choixTri];
  11. }
  12.  $requete = "SELECT * FROM `eanantes` UNION
  13.     SELECT * FROM `earouen` UNION
  14.     SELECT * FROM `ealille` UNION
  15.     SELECT * FROM `ealondres` UNION
  16.     SELECT * FROM `eanancy` UNION
  17.     $sOrderBy";

Reply

Marsh Posté le 24-04-2012 à 16:34:03    

Ok autant pour moi une bonne partie fonctionne il me semble, je vais modifier ce qui ne va pas (notamment ce UNION en trop ;) )  
 
Par contre toujours pas de solution pour le body width: 100%

Reply

Marsh Posté le 24-04-2012 à 16:38:52    

tu connais les jointures et tu fais des UNION :??: Soit j'ai pas compris ce que tu veux faire, soit c'est toi qui n'a rien compris aux jointures :/


---------------
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 24-04-2012 à 16:44:04    

Oh il est fort possible que je n'ai pas compris grand chose aux jointures, ce n'est pas mon fort et lorsque j'ai voulu en faire pour le tri de mon tableau ça n'a pas marché donc j'ai fait avec ce que j'ai trouvé :$
 
Ma requète ressemblait à ça avant :

Code :
  1. $requete = "SELECT * FROM `eanantes`,`earouen`,`ealille`,`ealondres`,`eanancy` where eanantes.type=earouen.type
  2.                       AND eanantes.type=ealille.type
  3.                       AND eanantes.type=ealondres.type
  4.                       AND eanantes.type=eanancy.type,  $sOrderBy";

Reply

Marsh Posté le 24-04-2012 à 16:47:31    

Tu pourrais poster le MCD (schéma ou structure de ta BD). Vu le nom de tes tables, j'ai très peur de la modélisation de la BD (même si ça n'a certes rien à voir avec ton pb de tableau)...


---------------
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 24-04-2012 à 16:56:26    

Euh je crois que tu as raison d'avoir peur, la BDD n'est pas mon point fort malheureusement ...  
J'espère que ce que je vais te donner sera suffisant:
Alors j'ai ces tables:
 client, ealille, ealondres, eanancy, eanantes, eanord, earouen, nature, processus, redacteur, respcur, respser, service, type
 
les tables client, nature, processus, redacteur, respcur, respser, service, type sont composées respectivement  
d'un SID_client et d'un nom_client, SID_nature et nom_nature etc.
 
Et les tables ealille, ealondres,eanantes,eanancy,eanord, earouen
Sont respectivement composées:
 num, date, redacteur, respCur, respSer, type, nature, processus, service, client, CI, description, actionCur, id_lieu  
 
Les clés primaires des premières tables sont le SID, et les clés primaires des ea* sont le num
 
J'espère que c'est ce que tu voulais savoir :/

Reply

Marsh Posté le 24-04-2012 à 17:02:59    

T'as pas ça sous forme graphique (c'est ce qu'on appelle un MCD). Là, c'est pas évident de se représenter.
 
Mais je peux déjà te dire que si t'as des listes de champs identiques pour plusieurs tables, c'est que t'as un pb. En effet, tu pourrais les factoriser dans une seule table, en rajoutant simplement un champ de type unsigned "tinyint" représentant le rôle fonctionnel de l'enregistrement (ie, le nom de la table en qq sorte d'où il vient initialement, ex : 1 -> nature, 2 -> processus...).


---------------
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 25-04-2012 à 08:03:07    

Je ne sas pas comment obtenir le MCD réellement, alors j'ai fait au mieux en écrivant :/
 
Avant d'essayer de refaire mes tables et de les réunir tu ne crois pas que étant donné que certaines tables sont assez longues (surtout les tables respCur et redacteur qui ont chacune environ 400 données) il serait préférable de laisser les tables séparées pour éviter de parcourir toutes les tables a chaque recherche, à chaque tri etc. Sachant que je dois afficher les données de certaines tables dans des listes déroulantes, et parfois je dois afficher les données d'une table mais pas d'une autre.  
Donc si je réunis tout, n'y aurais-t-il pas une perte de vitesse lors des requètes du fait des plus grandes tables ?
 
Et il faut savoir ussi que les accès aux différentes tables dépendent aussi des droits d'accès de la session ( exemple: un utilisateur identifier comme venant de nantes pourra ajouter des données dans la table de nantes mais pas dans les autres, mais il pourra consulter les tables des autres lieux)
 
 
Et je rajoute encore une chose, il faut que chaque données des tables eanantes, ealille, ealondres, et nancy et earouen aient un iD unique et indépendant (il doit y avoir un SID = 1 dans chaque tables)

Message cité 1 fois
Message édité par scribou le 25-04-2012 à 08:35:08
Reply

Marsh Posté le 25-04-2012 à 10:56:10    

Alors j'ai trouvé une solution pour les colonnes ! Je ne peux pas expliquer pourquoi les solutions précédentes ne fonctionnaient pas et que celle la marche mais bon. La solution est la suivante:
 
Ajout d'une partie de code css

Code :
  1. .colonne {
  2. font-family: Verdana, Arial, Helvetica, sans-serif; /* police du texte */
  3. font-size: 12px; /* taille du texte */
  4. text-align: center; /* texte aligner à droite */
  5. width: 100px; /* largeur de la cellule*/
  6. height:50px;
  7. }
  8. .numero{
  9. font-family: Verdana, Arial, Helvetica, sans-serif; /* police du texte */
  10. font-size: 12px; /* taille du texte */
  11. text-align: center; /* texte aligner à droite */
  12. width: 75px; /* largeur de la cellule*/
  13. }
  14. .texte{
  15. font-family: Verdana, Arial, Helvetica, sans-serif; /* police du texte */
  16. font-size: 12px; /* taille du texte */
  17. text-align: left; /* texte aligner à droite */
  18. width: 300px; /* largeur de la cellule*/
  19. }


 
Et juste ajout de la classe dans chaque colonne du tableau php

Code :
  1. echo"
  2.    <tr class=\"tab1\">
  3.     <td><div class=\"numero\">$data[num]  </div></td>
  4.     <td><div class=\"numero\">$data[date]  </div></td>
  5.     <td><div class=\"colonne\">$data[redacteur] </div></td>
  6.     <td><div class=\"colonne\">$data[respCur] </div></td>
  7.     <td><div class=\"colonne\">$data[respSer] </div></td>
  8.     <td><div class=\"colonne\">$data[type]  </div></td>
  9.     <td><div class=\"colonne\">$data[nature]  </div></td>
  10.     <td><div class=\"colonne\">$data[processus] </div></td>
  11.     <td><div class=\"colonne\">$data[service] </div></td>
  12.     <td><div class=\"colonne\">$data[client]  </div></td>
  13.     <td><div class=\"numero\">$data[CI]   </div></td>
  14.     <td><div class=\"texte\">$data[description]</div></td>
  15.     <td><div class=\"texte\">$data[actionCur] </div></td>";
  16.     if ($data['actionCur'] == NULL && $droitAcces==2)
  17.     {
  18.      echo"<td><a href=\"ajoutActionCur.php?lieu=".$data['id_lieu']."&num=".$data['num']."\">Ajouter Action Curative</a></td>";
  19.     }
  20.     else{echo"<td></td>";}
  21.    echo"</tr>";
  22. }


 
Donc voila quelque chose qui fonctionne. =)

Message cité 1 fois
Message édité par scribou le 25-04-2012 à 10:56:49
Reply

Marsh Posté le 27-04-2012 à 10:03:27    

scribou a écrit :

Je ne sas pas comment obtenir le MCD réellement, alors j'ai fait au mieux en écrivant :/
 
Avant d'essayer de refaire mes tables et de les réunir tu ne crois pas que étant donné que certaines tables sont assez longues (surtout les tables respCur et redacteur qui ont chacune environ 400 données) il serait préférable de laisser les tables séparées pour éviter de parcourir toutes les tables a chaque recherche, à chaque tri etc. Sachant que je dois afficher les données de certaines tables dans des listes déroulantes, et parfois je dois afficher les données d'une table mais pas d'une autre.  
Donc si je réunis tout, n'y aurais-t-il pas une perte de vitesse lors des requètes du fait des plus grandes tables ?
 
Et il faut savoir ussi que les accès aux différentes tables dépendent aussi des droits d'accès de la session ( exemple: un utilisateur identifier comme venant de nantes pourra ajouter des données dans la table de nantes mais pas dans les autres, mais il pourra consulter les tables des autres lieux)
 
 
Et je rajoute encore une chose, il faut que chaque données des tables eanantes, ealille, ealondres, et nancy et earouen aient un iD unique et indépendant (il doit y avoir un SID = 1 dans chaque tables)


 
Alors, d'ans l'ordre :
1) Le MCD, on le fait pas après avoir implémenté la BD dans le SGBD, mais avant. Dans le dév d'une apli de gestion, c'est l'un des documents de référence.
 
2) pour toi, des tables de 400 lignes, c'est beaucoup? Pour info, la taille max des tables de Mysql se situe, de mémoire, à 50 millions de lignes. Et s'il faut modifier ton schéma et migrer les données, ça se fait par des requêtes sql ou des scripts, pas à la main.
 
3) quand tu listes le contenu d'une table, si tu n'en veux qu'une partie, les clauses where sont faites pour ça. Et pour les perfs, les index sont là pour ça aussi. Savoir bien indexer des champs suivant les requêtes qu'on fait, c'est important. La commande EXPLAIN peut t'aider dans le cas de requêtes qui sont trop longue. Pour info, sur l'une des applis que je développe (Astres, cf ma signature), j'ai un table qui contient plusieurs millions de lignes. Quand je la requête, j'ai des temps de réponses de l'ordre de 5-6s (et je suis sur un serveur pas très puissant). Et si t'as encore des pbs de perfs, tu peux tuner mysql en modifiant le fichier de conf et agrandir la taille de certains buffers ou caches.
 
4) pour la gestion des droits, ça se mets dans un fichier de conf ou une table. Cette gestion n'a rien à voir avec la structure de ta BD.
 
Conclusion : aucun de tes arguments n'est recevable... :o


---------------
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 27-04-2012 à 10:04:27    

scribou a écrit :

Alors j'ai trouvé une solution pour les colonnes ! Je ne peux pas expliquer pourquoi les solutions précédentes ne fonctionnaient pas et que celle la marche mais bon. La solution est la suivante:
 
Ajout d'une partie de code css

Code :
  1. .colonne {
  2. font-family: Verdana, Arial, Helvetica, sans-serif; /* police du texte */
  3. font-size: 12px; /* taille du texte */
  4. text-align: center; /* texte aligner à droite */
  5. width: 100px; /* largeur de la cellule*/
  6. height:50px;
  7. }
  8. .numero{
  9. font-family: Verdana, Arial, Helvetica, sans-serif; /* police du texte */
  10. font-size: 12px; /* taille du texte */
  11. text-align: center; /* texte aligner à droite */
  12. width: 75px; /* largeur de la cellule*/
  13. }
  14. .texte{
  15. font-family: Verdana, Arial, Helvetica, sans-serif; /* police du texte */
  16. font-size: 12px; /* taille du texte */
  17. text-align: left; /* texte aligner à droite */
  18. width: 300px; /* largeur de la cellule*/
  19. }


 
Et juste ajout de la classe dans chaque colonne du tableau php

Code :
  1. echo"
  2.    <tr class=\"tab1\">
  3.     <td><div class=\"numero\">$data[num]  </div></td>
  4.     <td><div class=\"numero\">$data[date]  </div></td>
  5.     <td><div class=\"colonne\">$data[redacteur] </div></td>
  6.     <td><div class=\"colonne\">$data[respCur] </div></td>
  7.     <td><div class=\"colonne\">$data[respSer] </div></td>
  8.     <td><div class=\"colonne\">$data[type]  </div></td>
  9.     <td><div class=\"colonne\">$data[nature]  </div></td>
  10.     <td><div class=\"colonne\">$data[processus] </div></td>
  11.     <td><div class=\"colonne\">$data[service] </div></td>
  12.     <td><div class=\"colonne\">$data[client]  </div></td>
  13.     <td><div class=\"numero\">$data[CI]   </div></td>
  14.     <td><div class=\"texte\">$data[description]</div></td>
  15.     <td><div class=\"texte\">$data[actionCur] </div></td>";
  16.     if ($data['actionCur'] == NULL && $droitAcces==2)
  17.     {
  18.      echo"<td><a href=\"ajoutActionCur.php?lieu=".$data['id_lieu']."&num=".$data['num']."\">Ajouter Action Curative</a></td>";
  19.     }
  20.     else{echo"<td></td>";}
  21.    echo"</tr>";
  22. }


 
Donc voila quelque chose qui fonctionne. =)


 
Mettre un div par cellule de tableau, c'est tout simplement immonde comme solution.  :pfff:


---------------
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 27-04-2012 à 14:35:41    

Alors pour le MCD désolé mais on ne m'a jamais appris à faire ça dans ma formation donc je pouvais pas l'inventer ><
 
Et sinon pour les bases de données toutes les informations que tu m'as donnée je les connaissais pas et c'est bien pour ça que je posais les questions ...  
 
Et pour la gestion des droits la façon dont j'ai fait ce n'est pas en rapport avec la bdd donc tout va bien, mais je précisais juste au cas ou ;)
 
Et pour finir sur les div je reconnais que ça fait pas top mais c'est que j'ai besoin d'une taille différente de colonne selon ce qu'elle va permettre d'afficher (une colonne qui affiche un nombre sera plus petite qu'une colonne qui affiche un champ pré-défini qui elle même sera plus petite qu'une colonne qui affiche une zone de texte) et je ne sais pas faire en sorte que les colonnes 1 et 2 fassent telle taille, les colonnes 3,4,5,6,7,8,9,10,11 fassent telle autre taille et enfin les colonnes 12 et 13 fassent encore une autre taille sans mettre des DIV différents :/
 
Mais pour conclure, si aucun de mes arguments est valable au niveau de la base de données, je dois réunir les tables c'est bien ça ? ;)

Reply

Marsh Posté le 27-04-2012 à 14:40:24    

Ok pour les DIV je suis un peu bête, peut-être que ceci te plaira plus ;)

Code :
  1. if($i%2==0)
  2.   {   //affichange du tableau, fais appel au design "tab1" si le nombre i est pair
  3.    echo"
  4.    <tr class=\"tab1\">
  5.     <td><div class=\"numero\"> $data[num]    </td>
  6.     <td>      $data[date]   </div></td>
  7.     <td><div class=\"colonne\"> $data[redacteur]  </td>
  8.     <td>      $data[respCur]   </td>
  9.     <td>      $data[respSer]   </td>
  10.     <td>      $data[type]    </td>
  11.     <td>      $data[nature]   </td>
  12.     <td>      $data[processus]  </td>
  13.     <td>      $data[service]   </td>
  14.     <td>      $data[client]   </td>
  15.     <td>      $data[classification]</div></td>
  16.     <td><div class=\"texte\"> $data[description]  </td>
  17.     <td>      $data[actionCur] </div></td>";
  18.     if($droitAcces==2)
  19.     {
  20.      if ($data['actionCur'] == NULL)
  21.      {
  22.       echo"<td><a href=\"ajoutActionCur.php?lieu=".$data['id_lieu']."&num=".$data['num']."\" class=\"type2\">Ajouter Action Curative</a></td>";
  23.      }
  24.      else{echo"<td></td>";}
  25.     }
  26.    echo"</tr>";
  27.   }
  28.   else  //fait appel au design "tab2" si le nombre i est impair
  29.   {
  30.    echo"
  31.    <tr class=\"tab2\">
  32.     <td><div class=\"numero\"> $data[num]    </td>
  33.     <td>      $data[date]   </div></td>
  34.     <td><div class=\"colonne\"> $data[redacteur]  </td>
  35.     <td>      $data[respCur]   </td>
  36.     <td>      $data[respSer]   </td>
  37.     <td>      $data[type]    </td>
  38.     <td>      $data[nature]   </td>
  39.     <td>      $data[processus]  </td>
  40.     <td>      $data[service]   </td>
  41.     <td>      $data[client]   </td>
  42.     <td>      $data[classification]</div></td>
  43.     <td><div class=\"texte\"> $data[description]  </td>
  44.     <td>      $data[actionCur] </div></td>";
  45.     if($droitAcces==2)
  46.     {
  47.      if ($data['actionCur'] == NULL)
  48.      {
  49.       echo"<td><a href=\"ajoutActionCur.php?lieu=".$data['id_lieu']."&num=".$data['num']."\" class=\"type2\">Ajouter Action Curative</a></td>";
  50.      }
  51.      else{echo"<td></td>";}
  52.     }
  53.    echo"</tr>";

Reply

Marsh Posté le 27-04-2012 à 14:44:20    

Tu peux nous redonner la dernière version de ta page html et de ton css?


---------------
London Box Office: Comédie Musicale Londres
Reply

Marsh Posté le 27-04-2012 à 14:56:40    

Je n'ai pas encore regardé le détail de ta page, mais ta table devrait être de la forme suivante:

Code :
  1. <table>
  2. <thead>
  3.   <tr>
  4.    <th></th>
  5.    <th></th>
  6.   </tr>
  7. </thead>
  8. <tbody>
  9.   <tr>
  10.    <td></td>
  11.    <td></td>
  12.   </tr>
  13. </tbody>
  14. </table>


---------------
London Box Office: Comédie Musicale Londres
Reply

Marsh Posté le 27-04-2012 à 15:01:21    

Si ta table a toujours le même nombre de colonnes (15), et que tu souhaites donner la même largeur (200px) à tes colonnes, la solution la plus simple est de mettre ceci dans ta css:

Code :
  1. table {width:3000px;}
  2. th, td {width:200px;}


---------------
London Box Office: Comédie Musicale Londres
Reply

Marsh Posté le 27-04-2012 à 15:02:32    

Bien sûr !  
Alors voilà la page php de consultation:

Code :
  1. <?php
  2. session_start();
  3. if(! isset($_SESSION['identifiant'])) {
  4.     header('Location: connexion.php');
  5.     exit();
  6. }
  7. $connection = mysql_pconnect("127.0.0.1","root","" );
  8. $database = mysql_select_db("db", $connection);
  9. include "fctAux.inc.php";
  10. $droitAcces = $_SESSION['droitAcces'];
  11. enTete("Répertorier un dysfonctionnement pour l'antenne de Nantes" );
  12. haut();
  13. include "menu.php";
  14. echo "<div class=\"corpConsult\">";
  15.  echo"<h2>Consultation des Dysfonctionnements de l'URIS Nord </h2>";
  16. $choixTri=0;
  17. if(isset($_GET['choixTri'])) //si la variable existe
  18. {
  19.  $choixTri=$_GET['choixTri']; //attribue a la varibale $choixTri la valeur renvoyée par le formulaire
  20. }
  21. if(isset($_GET['nature']))
  22. {
  23.  $nature=$_GET['nature'];
  24. }
  25. if(isset($_GET['classification']))
  26. {
  27.  $classification=$_GET['classification'];
  28. }
  29. if(isset($_GET['processus']))
  30. {
  31.  $processus=$_GET['processus'];
  32. }
  33. if(isset($_GET['type']))
  34. {
  35.  $type=$_GET['type'];
  36. }
  37. if(isset($_GET['dateDebut']))
  38. {
  39.  $dateDebut=$_GET['dateDebut'];
  40. }
  41. if(isset($_GET['dateFin']))
  42. {
  43.  $dateFin=$_GET['dateFin'];
  44. }
  45. echo"<form action = \"consultDysNordNantes.php\" method = \"get\">
  46.  <table>
  47.  <tr><td>Trier par Nature : </td>
  48.   <td><select style=\"BACKGROUND-POSITION: left 50%; WIDTH: 200px\" name=\"nature\">";
  49.   $result = mysql_query("SELECT * FROM nature ORDER BY nom_nature;" )or die(mysql_error());
  50.    while ($ligne = mysql_fetch_array($result))
  51.    {
  52.     extract($ligne);
  53.     echo "<option id_nature='$SID_nature'>".$nom_nature."</option>\n";
  54.    }
  55.  echo "</select></td>
  56.   <td>Classification : </td>
  57.    <td><select style=\"BACKGROUND-POSITION: left 50%; WIDTH: 200px\" name =\"classification\">
  58.    <option name =\"vide\">----</option>
  59.    <option name =\"qualite\">Qualité</option>
  60.    <option name =\"securite\">Sécurité</option>
  61.    <option name =\"environnement\">Environnement</option>
  62.    </select>
  63.   </td>
  64.  </tr>
  65.  <tr><td>Processus : </td>
  66.   <td><select style=\"BACKGROUND-POSITION: left 50%; WIDTH: 200px\" name=\"processus\">";
  67.   $result = mysql_query("SELECT * FROM processus ORDER BY nom_processus;" )or die(mysql_error());
  68.    while ($ligne = mysql_fetch_array($result))
  69.    {
  70.     extract($ligne);
  71.     echo "<option id_processus='$SID_processus'>".$nom_processus."</option>\n";
  72.    }
  73.  echo "</select></td>
  74.   <td>Type :</td>
  75.   <td><select style=\"BACKGROUND-POSITION: left 50%; WIDTH: 200px\" name =\"type\">";
  76.    $result = mysql_query("SELECT * FROM type ORDER BY nom_type;" )or die(mysql_error());
  77.    while ($ligne = mysql_fetch_array($result))
  78.    {
  79.     extract($ligne);
  80.     echo "<option id_type='$SID_type'>".$nom_type."</option>\n";
  81.    }
  82.    echo "</select>
  83.  </tr>
  84.  <tr><td> Entre le (jj-mm-aaaa) </td>
  85.   <td><input type=\"text\" name=\"dateDebut\"></td>
  86.   <td> et le (jj-mm-aaaa) </td>
  87.   <td><input type=\"text\" name=\"dateFin\"></td>
  88.  </tr>
  89.  </table>
  90.  <p style=\"text-align: center\"><input type=\"submit\" value=\"Rechercher\" name=\"insert\"></p>
  91.  </form>";
  92. // Cette fonction va permettre d'effectuer des recherches selon les critères rentré par l'utilisateur via les listes déroulantes
  93. // On va respectivement vérifier si les champs sont vides ou nous, s'ils sont vides on n'ajoutera rien à la requète de recherche
  94. // et s'ils ne sont pas vide on ajoutera le critère correspondant dans la requète de recherche.
  95. // Il est aussi vérifier si les champs précédents sont vides ou non pour savoir s'il faut ou non ajouter une requète entière  
  96. // ou s'il est juste nécessaire de rajouter une condition à la requète.
  97. if (isset($nature))
  98. {
  99.  $ArrayChampsTri = array("num", "date", "redacteur", "respCur", "respSer", "type", "nature", "processus", "service", "client", "classification", "id_lieu" );
  100.  $sOrderBy = "";
  101.  if (isset($ArrayChampsTri[$choixTri])){
  102.   $sOrderBy = " ORDER BY ".$ArrayChampsTri[$choixTri];
  103.   $requete="";
  104.  }
  105.  if($nature!='----') // si les 4 sont déclarés
  106.  {
  107.   $requete .= "SELECT * FROM `eanantes`WHERE nature='$nature'";
  108.  }
  109.  if($classification!='----' && $nature=='----') // si les 4 sont déclarés
  110.  {
  111.   $requete .= "SELECT * FROM `eanantes`WHERE classification='$classification'";
  112.  }
  113.  else if ($classification!='----' && $nature!='----')
  114.   {
  115.    $requete.="AND classification='$classification'";
  116.   }
  117.  if($processus !='----' && $classification=='----' && $nature =='----')
  118.  {
  119.   $requete .= "SELECT * FROM `eanantes`WHERE processus='$processus'";
  120.  }
  121.  else if ( $processus!='----')
  122.   {
  123.    $requete.="AND processus='$processus'";
  124.   }
  125.  if($classification=='----' && $nature =='----' && $processus =='----' && $type!='----')
  126.  {
  127.   $requete .= "SELECT * FROM `eanantes`WHERE type='$type'";
  128.  }
  129.  else if($type!='----')
  130.   {
  131.    $requete .= "AND type='$type'";
  132.   }
  133.  if ($nature =='----' && $classification=='----' && $processus=='----' && $type=='----' && $dateDebut=='' && $dateFin =='')
  134.  {
  135.   $ArrayChampsTri = array("num", "date", "redacteur", "respCur", "respSer", "type", "nature", "processus", "service", "client", "classification", "id_lieu" );
  136.   $sOrderBy = "";
  137.   if (isset($ArrayChampsTri[$choixTri])) {
  138.   $sOrderBy = " ORDER BY ".$ArrayChampsTri[$choixTri];
  139.   }
  140.   $requete .= "SELECT * FROM `eanantes`";
  141.  }
  142.  if ($nature =='----' && $processus =='----' && $classification =='----' && $type =='----' && $dateDebut!='' && $dateFin!='')
  143.  {
  144.   $requete .= "SELECT * FROM `eanantes`WHERE date BETWEEN '$dateDebut' AND '$dateFin'";
  145.  }
  146.  else if($nature !='----' || $processus !='----' || $classification !='----' || $type !='----' && $dateDebut!='' && $dateFin!='')
  147.   {
  148.    $requete.= " AND date BETWEEN '$dateDebut' AND '$dateFin'";
  149.   }
  150.  if($nature =='----' && $processus =='----' && $classification =='----' && $type =='----' && $dateDebut!='' && $dateFin=='')
  151.  {
  152.   $requete .="SELECT *FROM `eanantes`WHERE date >= '$dateDebut'";
  153.  }
  154.  if($nature =='----' && $processus =='----' && $classification =='----' && $type =='----' && $dateDebut=='' && $dateFin!='')
  155.  {
  156.   $requete .="SELECT *FROM `eanantes`WHERE date <= '$dateFin'";
  157.  }
  158.  $requete.="$sOrderBy;";
  159. }
  160. else
  161. {
  162.  $ArrayChampsTri = array("num", "date", "redacteur", "respCur", "respSer", "type", "nature", "processus", "service", "client", "classification", "id_lieu" );
  163.  $sOrderBy = "";
  164.  if (isset($ArrayChampsTri[$choixTri])) {
  165.   $sOrderBy = " ORDER BY ".$ArrayChampsTri[$choixTri];
  166.  }
  167.  $requete = "SELECT * FROM `eanantes` $sOrderBy";
  168. }
  169. echo "<table>
  170.   <tr><th><a href=\"consultDysNordNantes.php?choixTri=0 \" class=\"type1\">Numéro</a>    </th>
  171.    <th><a href=\"consultDysNordNantes.php?choixTri=1 \" class=\"type1\">Date</a>    </th>
  172.    <th><a href=\"consultDysNordNantes.php?choixTri=2 \" class=\"type1\">Rédacteur</a>   </th>
  173.    <th><a href=\"consultDysNordNantes.php?choixTri=3 \" class=\"type1\">Responsable Curatif</a></th>
  174.    <th><a href=\"consultDysNordNantes.php?choixTri=4 \" class=\"type1\">Responsable Service</a></th>
  175.    <th><a href=\"consultDysNordNantes.php?choixTri=5 \" class=\"type1\">Type</a>    </th>
  176.    <th><a href=\"consultDysNordNantes.php?choixTri=6 \" class=\"type1\">Nature</a>    </th>
  177.    <th><a href=\"consultDysNordNantes.php?choixTri=7 \" class=\"type1\">Processus Concerné</a> </th>
  178.    <th><a href=\"consultDysNordNantes.php?choixTri=8 \" class=\"type1\">Service Concerné</a> </th>
  179.    <th><a href=\"consultDysNordNantes.php?choixTri=9 \" class=\"type1\">Client</a>    </th>
  180.    <th><a href=\"consultDysNordNantes.php?choixTri=10 \" class=\"type1\">Classification</a> </th>
  181.    <th> Description </th>
  182.    <th> Action Curative </th>
  183.   </tr>";
  184.  //echo"requete : $requete"; // permet d'afficher la requète effectuée en cas de besoin de controle
  185.  $req = mysql_query($requete) or die(mysql_error());
  186.  $i=0;
  187.  // on fait une boucle qui va faire un tour pour chaque enregistrement  
  188.  while($data = mysql_fetch_assoc($req))
  189.  {
  190.   if($i%2==0)
  191.   {   //affichange du tableau, fais appel au design "tab1" si le nombre i est pair
  192.    echo"
  193.    <tr class=\"tab1\">
  194.     <td><div class=\"numero\"> $data[num]    </td>
  195.     <td>      $data[date]   </div></td>
  196.     <td><div class=\"colonne\"> $data[redacteur]  </td>
  197.     <td>      $data[respCur]   </td>
  198.     <td>      $data[respSer]   </td>
  199.     <td>      $data[type]    </td>
  200.     <td>      $data[nature]   </td>
  201.     <td>      $data[processus]  </td>
  202.     <td>      $data[service]   </td>
  203.     <td>      $data[client]   </td>
  204.     <td>      $data[classification]</div></td>
  205.     <td><div class=\"texte\"> $data[description]  </td>
  206.     <td>      $data[actionCur] </div></td>";
  207.     if($droitAcces==2)
  208.     {
  209.      if ($data['actionCur'] == NULL)
  210.      {
  211.       echo"<td><a href=\"ajoutActionCur.php?lieu=".$data['id_lieu']."&num=".$data['num']."\" class=\"type2\">Ajouter Action Curative</a></td>";
  212.      }
  213.      else{echo"<td></td>";}
  214.     }
  215.    echo"</tr>";
  216.   }
  217.   else  //fait appel au design "tab2" si le nombre i est impair
  218.   {
  219.    echo"
  220.    <tr class=\"tab2\">
  221.     <td><div class=\"numero\"> $data[num]    </td>
  222.     <td>      $data[date]   </div></td>
  223.     <td><div class=\"colonne\"> $data[redacteur]  </td>
  224.     <td>      $data[respCur]   </td>
  225.     <td>      $data[respSer]   </td>
  226.     <td>      $data[type]    </td>
  227.     <td>      $data[nature]   </td>
  228.     <td>      $data[processus]  </td>
  229.     <td>      $data[service]   </td>
  230.     <td>      $data[client]   </td>
  231.     <td>      $data[classification]</div></td>
  232.     <td><div class=\"texte\"> $data[description]  </td>
  233.     <td>      $data[actionCur] </div></td>";
  234.     if($droitAcces==2)
  235.     {
  236.      if ($data['actionCur'] == NULL)
  237.      {
  238.       echo"<td><a href=\"ajoutActionCur.php?lieu=".$data['id_lieu']."&num=".$data['num']."\" class=\"type2\">Ajouter Action Curative</a></td>";
  239.      }
  240.      else{echo"<td></td>";}
  241.     }
  242.    echo"</tr>";
  243.   }
  244.   $i=$i+1;
  245.  }
  246.   echo"</table>";
  247.  
  248.    
  249. echo"</div>";
  250. ?>


 
 
Et voila le php qui suit ;)  
 

Code :
  1. table{
  2. border: solid black 1px;
  3. border-collapse: collapse;
  4. width:100%;
  5. }
  6. td{
  7. border: solid black 1px;
  8. /*border-collapse: collapse;*/
  9. }
  10. .colonne {
  11. font-family: Calibri, sans-serif; /* police du texte */
  12. font-size: 12px; /* taille du texte */
  13. text-align: center; /* texte aligner au centre */
  14. width: 100px; /* largeur de la cellule*/
  15. height:50px;
  16. }
  17. .numero{
  18. font-family: Calibri, sans-serif; /* police du texte */
  19. font-size: 12px; /* taille du texte */
  20. text-align: center; /* texte aligner au centr */
  21. width: 75px; /* largeur de la cellule*/
  22. }
  23. .texte{
  24. font-family: Calibri, sans-serif; /* police du texte */
  25. font-size: 12px; /* taille du texte */
  26. text-align: left; /* texte aligner à gauche */
  27. width: 300px; /* largeur de la cellule*/
  28. }
  29. th{
  30. font-family: Calibri, sans-serif; /* police du texte */
  31. font-size: 17px; /* taille du texte */
  32. border: solid black 1px;
  33. background-color:#FFFFFF;
  34. }
  35. h1{
  36. color: white;
  37. margin:0;
  38. padding-top:50px;
  39. text-align: center;
  40. font-size: 40px;
  41. }
  42. .hautGauche {
  43. float: left;
  44. top: 0px;
  45. left: 0px;
  46. padding: 0px;
  47. }
  48. .menu{
  49. font-family: Calibri, sans-serif; /* police du texte */
  50. font-size: 12px; /* taille du texte */
  51. position : absolute;
  52. top:131px;
  53. left:0%;
  54. /*border:solid 1px red;*/
  55. border-right: 2px solid #CCCDCD;
  56. padding:5px;
  57. width:190px;
  58. height:83%;
  59. background-color: #CCFFFF;
  60. }
  61. .haut{
  62. position: absolute;
  63.     top: 0%;
  64.     left: 0px;
  65. border-bottom: 2px solid #CCCDCD;
  66. width:100%;
  67. padding:0px;
  68. background-color:#66CCCC;
  69. }
  70. .corpConsult{
  71. border: solid black 1px;
  72. position : absolute;
  73. top:131px;
  74. left:200px;
  75. /*border-left:2px solid #CCCDCD;*/
  76. padding:19px;
  77. width:81%;
  78. height:80%;
  79. background-color:#66CCCC;
  80. overflow:scroll;
  81. }
  82. .corpAjout{
  83. border: solid black 1px;
  84. width: 81%;
  85. position : absolute;
  86. top:132px;
  87. left:201px;
  88. padding:20px;
  89. background-color:#66CCCC;
  90. }
  91. ul{
  92. font-family: Calibri, sans-serif; /* police du texte */
  93. font-size: 14px; /* taille du texte */
  94. list-style-type: none;
  95. margin:0px;
  96. }
  97. li{
  98. font-family: Calibri, sans-serif; /* police du texte */
  99. font-size: 13px; /* taille du texte */
  100. background-color:#CCFFFF;
  101. margin:0px;
  102. padding:0px;
  103. }
  104. .titreMenu{
  105. font-family: Calibri, sans-serif; /* police du texte */
  106. font-size: 14px; /* taille du texte */
  107. background-color:#CCFFFF;
  108. font-weight:bold;
  109. margin:0px;
  110. padding:0px;
  111. }
  112. tr.tab1{
  113. background-color:#FF9966;
  114. text-align:center;
  115. border: solid black 1px;
  116. }
  117. tr.tab2{
  118. background-color:#FFCC99;
  119. text-align:center;
  120. border: solid black 1px;
  121. }
  122. .tab3{
  123. background-color:#CCFFFF;
  124. }
  125. a.type1 {
  126. text-decoration: none;
  127. color:#000000;
  128. }
  129. a.type2{
  130. text-decoration: none;
  131. color:#663366;
  132. }
  133. .connexion{
  134. border: solid black 1px;
  135. position : absolute;
  136. width: 400px;
  137. top:250px;
  138. left:450px;
  139. margin:50px;
  140. border: solid black 1px;
  141. background-color:#66CCCC;
  142. }
  143. .droite{
  144. text-align:right;
  145. padding:5px;
  146. /*width: 200px;*/
  147. border: solid black 1px;
  148. /*border-collapse: collapse;*/
  149. }
  150. .centre{
  151. text-align:center;
  152. padding-left:10px;
  153. padding-right:10px;
  154. border: solid black 1px;
  155. /*border-collapse: collapse;*/
  156. }
  157. textarea{
  158. width: 600px;
  159. height: 150px;
  160. }


 

Reply

Marsh Posté le 27-04-2012 à 15:04:01    

Juste un truc, la j'ai fait en sorte que la partie "corp" contenant mon tableau ne dépasse pas la page et que des scrollbar apparaissent pour faire défilé le tableau uniquement ;)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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