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
<?php
session_start();//lancement de la session
$Database = $_SESSION['Database']; //base de donnee choisie
$elem = $_SESSION['elem']; // table choisis
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>">
<html xmlns="<a href="http://www.w3.org/1999/xhtml" target="_blank">http://www.w3.org/1999/xhtml</a>">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Page champs de la table</title>
</head>
<body>
<?php
require_once('conn_bd.php');//Appel du ficher de connexion
$bdd="$Database";
mysql_select_db($bdd);
$sql_soc="select * from $elem ";
$resQuery = mysql_query($sql_soc);
if (mysql_num_rows($resQuery) != 0) {
// titre des colonnes
$fields = mysql_num_fields($resQuery);
$i = 0;
?>
<form method="post" action="verif_champs_coche.php">
<table border="1" bgcolor="#CCCCCC" style="border-collapse:collapse;width:100%;">
<tr>
<td width="5%" ><strong>N° Ligne</strong> </td>
<td width="20%"><strong>CHAMPS</strong> </td>
<td width="75%" align="left"><strong>CHOIX</td>
</tr>
<div>
<?php
while ($i < $fields) {
echo"<tr onmouseover=menuOver(this) onmouseout=menuOut(this)>
<td width='8%'>$i";"</td>";
echo"<td >";
$champs = mysql_field_name($resQuery);
echo $champs;
echo"</td>";
echo"<td>
<div id='div_chck' align ='left'>
<input type='checkbox' id='idForm' name='champs[]' value='$champs'>
</div>
</td>";
echo"</tr>";
$i++;
echo "</div>";
}
?>
</td >
</tr>
<tr style="display:none">
<td >
<?php
// données de la table
while ($arrSelect = mysql_fetch_array($resQuery, MYSQL_ASSOC)) {
foreach($arrSelect as $elem) {
echo "$elem;";
}
echo "\n";
}
}
?>
</td >
</tr>
</table>
</form>
</body>
</html>
/*ici le code pour afficher les colonnes selectionnees avec leur valeur respective.
<?php
session_start();//lancement de la session
$Database = $_SESSION['Database'];
$elem=$_SESSION['elem'];
$champs = $_POST['champs']; //recuperer les donner choisis
$_SESSION['champs']= $_POST['champs'];
$champs =$_SESSION['champs'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>">
<html xmlns="<a href="http://www.w3.org/1999/xhtml" target="_blank">http://www.w3.org/1999/xhtml</a>">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Page champs de la table</title>
</head>
<body>
<form name="formulaire" method="POST" action="routage_critere.php" enctype="multipart/form-data">
<table border="1" bgcolor="#CCCCCC" style="border-collapse:collapse;width:100%;">
<tr>
<td width="61"><br></td><td colspan="2"><div align="center" class="Style6"><strong>CRITERES</strong></div></td>
<td colspan="3" ><label>
</label> <label>
<div align="left"></div> </label>
<label>
<label>
<div align="right">
<input type="submit" name="Submit" value="Envoyer" />
</div>
</label>
<div align="left"> </div> </label>
</td>
</tr>
<?php
echo '<table bgcolor="#CCCCCC" style="border-collapse:collapse;">';
echo '<tr style="width:1%;">';
echo '<td style="vertical-align:top;">';
$tableau = array();
if (isset($_SESSION['champs'])) {
for ($i = 0, $c = count($champs); $i < $c; $i++) {
echo '<table id="table" bgcolor="#CCCCCC" style="border-collapse:collapse;vertical-align:text-top;">';
echo '<tr>';
echo" <td style='vertical-align:top;color:blue;'><b>$champs[$i]</b></td> ";
$tableau = $champs[$i];
echo '</tr>';
require_once('conn_bd.php');//Appel du ficher de connexion
$bdd="$Database";
mssql_select_db($bdd);
//si le bouton "AFFICHER" à été activé
$sql_auth="select $tableau from $elem ";
$query_auth=mssql_query($sql_auth) ;
$nb=mssql_num_rows($query_auth);//compte le nbre de résultats
$m=0;
while ($arrSelect = mssql_fetch_array($query_auth, MYSQL_ASSOC)) {
foreach($arrSelect as $tableau) {
echo'<tr onmouseover=menuOver(this) onmouseout=menuOut(this)>';
echo '<td style="vertical-align:top;">';
echo $tableau;
echo '<td style="vertical-align:top;color:red;">';
echo $m;
$m++;
if ($m == $nb){
echo '</table >';
echo '<td style="vertical-align:top; ">';
echo '<table id="table" bgcolor="#CCCCCC" style="border-collapse:collapse;vertical-align:top;">';
echo '<tr >';
echo '<td style="vertical-align:top; ">';
}
}
}
echo '</table>';
}
}
echo '</table>';
?>
</form>
</body>
</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