Votre question

Coché certaine certaine colone de la table et afficheé les resultat en php et sq

Tags :
  • Base de données
  • Programmation
Dernière réponse : dans Programmation
9 Avril 2010 20:05:16

bonsoir
je travaille en php.
j'arrive a recuperé les noms des colonnes d'une table dynamiquement quelque soit la base. j'ai cree un formulaire ou j'affiche ces colonne et j'ai ajouté un check box pour coché les colonnes que je veux affiche. mais le probleme est que lorsque le coche cetaine colonnes, je n'arrive pas a aficher seulement celle que j'ai selectionner. je vous passe le code :


/* formulaire de selection des nom des colonnes
  1. <?php
  2. session_start();//lancement de la session
  3. $Database = $_SESSION['Database']; //base de donnee choisie
  4. $elem = $_SESSION['elem']; // table choisis
  5. ?>
  6.  
  7. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  8. <html xmlns="http://www.w3.org/1999/xhtml">
  9. <head>
  10. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  11. <title>Page champs de la table</title>
  12.  
  13.  
  14.  
  15.  
  16. </head>
  17.  
  18.  
  19.  
  20. <body>
  21.  
  22. <?php
  23. require_once('conn_bd.php');//Appel du ficher de connexion
  24. $bdd="$Database";
  25. mysql_select_db($bdd);
  26.  
  27. $sql_soc="select * from $elem ";
  28. $resQuery = mysql_query($sql_soc);
  29. if (mysql_num_rows($resQuery) != 0) {
  30.  
  31. // titre des colonnes
  32. $fields = mysql_num_fields($resQuery);
  33.  
  34. $i = 0;
  35. ?>
  36.  
  37.  
  38. <form method="post" action="verif_champs_coche.php">
  39.  
  40.  
  41. <table border="1" bgcolor="#CCCCCC" style="border-collapse:collapse;width:100%;">
  42. <tr>
  43.  
  44. <td width="5%" ><strong>N° Ligne</strong> </td>
  45. <td width="20%"><strong>CHAMPS</strong> </td>
  46. <td width="75%" align="left"><strong>CHOIX</td>
  47. </tr>
  48. <div>
  49.  
  50.  
  51. <?php
  52.  
  53. while ($i < $fields) {
  54.  
  55. echo"<tr onmouseover=menuOver(this) onmouseout=menuOut(this)>
  56.  
  57. <td width='8%'>$i";"</td>";
  58. echo"<td >";
  59.  
  60. $champs = mysql_field_name($resQuery);
  61. echo $champs;
  62.  
  63. echo"</td>";
  64.  
  65. echo"<td>
  66. <div id='div_chck' align ='left'>
  67. <input type='checkbox' id='idForm' name='champs[]' value='$champs'>
  68. </div>
  69. </td>";
  70. echo"</tr>";
  71. $i++;
  72. echo "</div>";
  73. }
  74.  
  75. ?>
  76.  
  77. </td >
  78. </tr>
  79. <tr style="display:none">
  80. <td >
  81.  
  82. <?php
  83. // données de la table
  84. while ($arrSelect = mysql_fetch_array($resQuery, MYSQL_ASSOC)) {
  85. foreach($arrSelect as $elem) {
  86. echo "$elem;";
  87. }
  88. echo "\n";
  89. }
  90. }
  91. ?>
  92.  
  93. </td >
  94. </tr>
  95. </table>
  96. </form>
  97. </body>
  98. </html>


/*ici le code pour afficher les colonnes selectionnees avec leur valeur respective.
  1. <?php
  2. session_start();//lancement de la session
  3.  
  4. $Database = $_SESSION['Database'];
  5. $elem=$_SESSION['elem'];
  6.  
  7. $champs = $_POST['champs']; //recuperer les donner choisis
  8. $_SESSION['champs']= $_POST['champs'];
  9. $champs =$_SESSION['champs'];
  10.  
  11. ?>
  12.  
  13. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  14. <html xmlns="http://www.w3.org/1999/xhtml">
  15. <head>
  16. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  17. <title>Page champs de la table</title>
  18. </head>
  19.  
  20.  
  21.  
  22. <body>
  23.  
  24.  
  25. <form name="formulaire" method="POST" action="routage_critere.php" enctype="multipart/form-data">
  26.  
  27. <table border="1" bgcolor="#CCCCCC" style="border-collapse:collapse;width:100%;">
  28.  
  29. <tr>
  30. <td width="61"><br></td><td colspan="2"><div align="center" class="Style6"><strong>CRITERES</strong></div></td>
  31.  
  32. <td colspan="3" ><label>
  33.  
  34. </label> <label>
  35. <div align="left"></div> </label>
  36. <label>
  37. <label>
  38. <div align="right">
  39. <input type="submit" name="Submit" value="Envoyer" />
  40. </div>
  41. </label>
  42. <div align="left"> </div> </label>
  43.   
  44.    </td>
  45. </tr>
  46.  
  47.  
  48. <?php
  49. echo '<table bgcolor="#CCCCCC" style="border-collapse:collapse;">';
  50. echo '<tr style="width:1%;">';
  51. echo '<td style="vertical-align:top;">';
  52.  
  53.  
  54. $tableau = array();
  55.  
  56.  
  57. if (isset($_SESSION['champs'])) {
  58. for ($i = 0, $c = count($champs); $i < $c; $i++) {
  59.  
  60. echo '<table id="table" bgcolor="#CCCCCC" style="border-collapse:collapse;vertical-align:text-top;">';
  61. echo '<tr>';
  62. echo" <td style='vertical-align:top;color:blue;'><b>$champs[$i]</b></td> ";
  63. $tableau = $champs[$i];
  64. echo '</tr>';
  65.  
  66.  
  67. require_once('conn_bd.php');//Appel du ficher de connexion
  68. $bdd="$Database";
  69. mssql_select_db($bdd);
  70.  
  71. //si le bouton "AFFICHER" à été activé
  72. $sql_auth="select $tableau from $elem ";
  73.  
  74.  
  75.  
  76. $query_auth=mssql_query($sql_auth) ;
  77. $nb=mssql_num_rows($query_auth);//compte le nbre de résultats
  78.  
  79. $m=0;
  80.  
  81.  
  82. while ($arrSelect = mssql_fetch_array($query_auth, MYSQL_ASSOC)) {
  83.  
  84. foreach($arrSelect as $tableau) {
  85.  
  86. echo'<tr onmouseover=menuOver(this) onmouseout=menuOut(this)>';
  87. echo '<td style="vertical-align:top;">';
  88. echo $tableau;
  89. echo '<td style="vertical-align:top;color:red;">';
  90.  
  91. echo $m;
  92. $m++;
  93.  
  94. if ($m == $nb){
  95.  
  96. echo '</table >';
  97.  
  98. echo '<td style="vertical-align:top; ">';
  99. echo '<table id="table" bgcolor="#CCCCCC" style="border-collapse:collapse;vertical-align:top;">';
  100. echo '<tr >';
  101. echo '<td style="vertical-align:top; ">';
  102.  
  103. }
  104. }
  105.  
  106. }
  107.  
  108. echo '</table>';
  109.  
  110. }
  111.  
  112. }
  113. echo '</table>';
  114. ?>
  115. </form>
  116.  
  117. </body>
  118. </html>


le code marche mais je voudrais afficher le code n'est pas digne d'un bon programmeur.
merci de votre aide.
vous pouvez me repondre a mon adresse : ******@yahoo.fr

Autres pages sur : coche certaine certaine colone table affichee resultat php

a c 232 L Programmation
10 Avril 2010 13:13:26

Salut,

J'ai pas trop compris ton problème.
Par contre, de faire un $sql_soc="select * from $elem "; juste pour retourner toutes les colonnes, tu fais une grosse requête pour rien. Ajoute un LIMIT 1 vu que tu n'as pas besoin des données, seulement des noms des colonnes.
Et puis, il doit certainement y avoir un truc meilleur que ça pour récupérer les noms des colonnes avec MySQL.
Exemple:
  1. $sql_soc = 'select column_name from information_schema.columns where table_name=\''.$elem.'\';';

Qui va te retourner les noms de toutes les colonnes de ta table.

m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS