$sql= "select nom, prenom, codepostal, ville from utilisateur";
Pour trouver tes en-têtes de colonnes, il faut que tu fasses 4 requêtes de plus
Code : Tout sélectionner
select distinct nom from utilisateur order by nom
select distinct prenom from utilisateur order by prenom
select distinct codepostal from utilisateur order by codepostal
select distinct ville from utilisateur order by ville
<select>
<option name=nom value="*">Toutes les valeurs</option>
<?php
for ($i=0; $i<count(nom); $i++) {
echo "<option name=nom value=\"$nom[$i]\">$nom[$i]</option>\n";
}
?>
</select>
Tu mets tout ça dans un formulaire qui réappelle la page en lui passant les paramètres en post. (note : il faut que tu trouves un petit bout de javascript qui fait le submit à chaque changement dans une liste).(if isNull($_POST['nom'])) {
$wherenom = "1=1 ";
elseif ($_POST['nom'] = "*") {
$wherenom = "1=1 ";
} else {
$wherenom = "nom=$_POST['nom'] ";
}
Même chose pour les autres paramètres et au final
$sql= "select nom, prenom, codepostal, ville from utilisateur WHERE $wherenom $whereprenom $wherecode $whereville";
PS : Je suis presque sûr qu'il existe des solutions en javascript (ou Ajax ?) qui te permette de faire le filtrage sans être obligé de refaire une requête.// Création du tableau d'affichage avec une couleur de fond bgcolor= la couleur est en EXA #WWYYZZ WW pour le Rouge, YY pour le vert, ZZ pour le bleu.
echo "<table border=1 width=700 height=500 bgcolor=#efefff>";
// Index du tableau
// Création d'une ligne
echo "<tr>";
//création d'une colonne sur la ligne <td> pou créer la cellule </td> pour fermer
echo "<td>Numéro </td>";
echo "<td>Organime </td>";
echo "<td>Actions TH </td>";
echo "<td>reçu le </td>";
echo "<td>DF </td>";
echo "<td>intitulé de l'actions </td>";
echo "<td>Début </td>";
echo "<td>Fin </td>";
echo "<td>Info de positionnement </td>";
echo "<td>Liens </td>";
// Fermeture de la ligne
echo "</tr>";
// affichage avec un boucle while
while($affichage = mysql_fetch_array($req))
{
echo "<tr>";
echo "<td>".$affichage['numero']."</td>";
echo "<td>".$affichage['organisme']."</td>";
echo "<td>".$affichage['actionsth']."</td>";
echo "<td>".$affichage['recule']."</td>";
echo "<td>".$affichage['df']."</td>";
echo "<td>".$affichage['intitule']."</td>";
echo "<td>".$affichage['debut']."</td>";
echo "<td>".$affichage['fin']."</td>";
echo "<td>".$affichage['infopositionnement']."</td>";
// Affichage du lien qui ouvre dans un autre page avec "target="
echo "<td><a href=".$affichage['liens']." target=new_page'>".liens."</a></td>";
// Fermeture de la ligne
echo "</tr>";
}
// Fermeture du tableau
echo "</table>";
// fermeture de la connexion
mysql_close($connect);
?>
Merci d'avance
//// Sélection de la table avec les infos à relever
$sql ='SELECT id, numero, organisme, actionsth, recule, df, intitule, debut, fin, infopositionnement, liens FROM formation';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
Code : Tout sélectionner
<?
include '/var/www/data/woo/M/L/H/D/MLHDA43K/prive/fonctions/fct.inc';
// Appel delà fonction connect sql. Connexion à la base SQL.
$connect = connect_sql();
//// Sélection de la table avec les infos à relever
$sql ='SELECT id, numero, organisme, actionsth, recule, df, intitule, debut, fin, infopositionnement, liens FROM formation';
$sql ='SELECT distinct id from formation order by id';
$sql ='SELECT distinct numero from formation order by numero';
$sql ='SELECT distinct organisme from formation order by organisme';
$sql ='SELECT distinct actionsth from formation order by actionsth';
$sql ='SELECT distinct recule form formation order by recule';
$sql ='SELECT distinct df from formation order by df';
$sql ='SELECT distinct intitule from formation order by intitule';
$sql ='SELECT distinct debut from formation order by debut';
$sql ='SELECT distinct fin from formation order by fin';
$sql ='SELECT distinct infopositionnement from formation order by infopositionnement';
$sql ='SELECT distinct liens from formation order by liens';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
Code : Tout sélectionner
$sql ='SELECT id, numero, organisme, actionsth, recule, df, intitule, debut, fin, infopositionnement, liens FROM formation';
Code : Tout sélectionner
$sqlid ='SELECT distinct id from formation order by id';
$sqlnumero ='SELECT distinct numero from formation order by numero';
$sqlorganisme ='SELECT distinct organisme from formation order by organisme';
$sqlactionsth ='SELECT distinct actionsth from formation order by actionsth';
$sqlrecule ='SELECT distinct recule form formation order by recule';
$sqldf ='SELECT distinct df from formation order by df';
$sqlintitule ='SELECT distinct intitule from formation order by intitule';
$sqldebut ='SELECT distinct debut from formation order by debut';
$sqlfin ='SELECT distinct fin from formation order by fin';
$sqlinfopositionnement ='SELECT distinct infopositionnement from formation order by infopositionnement';
$sqlliens ='SELECT distinct liens from formation order by liens';
Code : Tout sélectionner
<?
include '/var/www/data/woo/M/L/H/D/MLHDA43K/prive/fonctions/fct.inc';
// Appel delà fonction connect sql. Connexion à la base SQL.
$connect = connect_sql();
//// Sélection de la table avec les infos à relever
$sql ='SELECT id, numero, organisme, actionsth, recule, df, intitule, debut, fin, infopositionnement, liens FROM formation';
$sqlid ='SELECT distinct id from formation order by id';
$sqlnumero ='SELECT distinct numero from formation order by numero';
$sqlorganisme ='SELECT distinct organisme from formation order by organisme';
$sqlactionsth ='SELECT distinct actionsth from formation order by actionsth';
$sqlrecule ='SELECT distinct recule form formation order by recule';
$sqldf ='SELECT distinct df from formation order by df';
$sqlintitule ='SELECT distinct intitule from formation order by intitule';
$sqldebut ='SELECT distinct debut from formation order by debut';
$sqlfin ='SELECT distinct fin from formation order by fin';
$sqlinfopositionnement ='SELECT distinct infopositionnement from formation order by infopositionnement';
$sqlliens ='SELECT distinct liens from formation order by liens';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
Code : Tout sélectionner
include '/var/www/data/woo/M/L/H/D/MLHDA43K/prive/fonctions/fct.inc';
Code : Tout sélectionner
<?
function arraytoselect ($array, $nom) {
$select = "<select name=\"$nom\">\n";
for ($i=0; $i<count($array); $i++) {
$select .= "<option value=\"$array[$i]\">$array[$i]</option>\n";
}
$select .= "</select>";
return $select;
}
?>
// au lieu de
include '/var/www/data/woo/M/L/H/D/MLHDA43K/prive/fonctions/fct.inc';
// tu aurais par exemple
include '../fonctions/fct.inc';
// en supposant que ton script doive remonter d'un dossier puis descendre dans le dossier "fonctions" pour trouver le script à inclure.
Enfin, au lieu de changer l'extension des fichier inclus en .inc, utilises plutot l'extension .inc.php (le .inc est surtout informel pour dire que ce fichier ne fonctionne pas tout seul et doit être inclu par un autre). L'intérêt, c'est que la majorité des serveurs ne considèrent pas .inc comme une extension php et si tu tentes de l'ouvrir, il ne sera pas compilé et apparaitra donc en clair. Avec le .php en plus au bout il sera protégé Code : Tout sélectionner
<?
include '/var/www/data/woo/M/L/H/D/MLHDA43K/prive/fonctions/fct.inc.php';
include '/var/www/data/woo/M/L/H/D/MLHDA43K/prive/fonctions/fct2.inc.php';
// Appel delà fonction connect sql. Connexion à la base SQL.
$connect = connect_sql();
//// Sélection de la table avec les infos à relever
$sql ='SELECT id, numero, organisme, actionsth, recule, df, intitule, debut, fin, infopositionnement, liens FROM formation';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// Création du tableau d'affichage avec une couleur de fond bgcolor= la couleur est en EXA #WWYYZZ WW pour le Rouge, YY pour le vert, ZZ pour le bleu.
echo "<table border=1 width=700 height=500 bgcolor=#efefff>";
// Index du tableau
// Création d'une ligne
echo "<tr>";
//création d'une colonne sur la ligne <td> pou créer la cellule </td> pour fermer
//appel de la fonction arraytoselect
echo "<td>Numéro </td>";
echo "<td>".arraytoselect ($resorganisme, "organisme")."</td>";
echo "<td>".arraytoselect ($resactionth, "actionsth")."</td>";
echo "<td>".arraytoselect ($resrecule, "reçu le")."</td>";
echo "<td>".arraytoselect ($redf, "DF")."</td>";
echo "<td>".arraytoselect ($reintitule, "intitulé de l'actions")."</td>";
echo "<td>Début </td>";
echo "<td>Fin </td>";
echo "<td>Info de positionnement </td>";
echo "<td>Liens </td>";
// Fermeture de la ligne
echo "</tr>";
// affichage avec un boucle while
while($affichage = mysql_fetch_array($req))
{
echo "<tr>";
echo "<td>".$affichage['numero']."</td>";
echo "<td>".$affichage['organisme']."</td>";
echo "<td>".$affichage['actionsth']."</td>";
echo "<td>".$affichage['recule']."</td>";
echo "<td>".$affichage['df']."</td>";
echo "<td>".$affichage['intitule']."</td>";
echo "<td>".$affichage['debut']."</td>";
echo "<td>".$affichage['fin']."</td>";
echo "<td>".$affichage['infopositionnement']."</td>";
// Affichage du lien qui ouvre dans un autre page avec "target="
echo "<td><a href=".$affichage['liens']." target=new_page'>".liens."</a></td>";
// Fermeture de la ligne
echo "</tr>";
}
// Fermeture du tableau
echo "</table>";
// fermeture de la connexion
mysql_close($connect);
?>
$monTableau = array(); // on commence par déclarer un tableau
$resultSet = mysql_query($sql); // on exécute l'une des requêtes sql
while($row = mysql_fetch_array($resultSet)) { // on parcours chaque ligne de résultat
$monTableau[] = $row['nomDuChamp']; // en mettant la valeur dans le tableau
}
$codeHtml = arraytoselect ($monTableau , "nomDuSelect"); // on passe le tableau en paramètre de la fonction
echo $codeHtml; // on affiche le résultat de la fonctionCode : Tout sélectionner
<?
include '/var/www/data/woo/M/L/H/D/MLHDA43K/prive/fonctions/fct.inc.php';
include '/var/www/data/woo/M/L/H/D/MLHDA43K/prive/fonctions/fct2.inc.php';
// Appel delà fonction connect_sql qui se trouve dans fct.inc.php. Connexion à la base SQL.
$connect = connect_sql();
//// Sélection de la table avec les infos à relever
$sql ='SELECT id, numero, organisme, actionsth, recule, df, intitule, debut, fin, infopositionnement, liens FROM formation';
$sqlid ='SELECT distinct id from formation order by id';
$sqlnumero ='SELECT distinct numero from formation order by numero';
$sqlorganisme ='SELECT distinct organisme from formation order by organisme';
$sqlactionsth ='SELECT distinct actionsth from formation order by actionsth';
$sqlrecule ='SELECT distinct recule form formation order by recule';
$sqldf ='SELECT distinct df from formation order by df';
$sqlintitule ='SELECT distinct intitule from formation order by intitule';
$sqldebut ='SELECT distinct debut from formation order by debut';
$sqlfin ='SELECT distinct fin from formation order by fin';
$sqlinfopositionnement ='SELECT distinct infopositionnement from formation order by infopositionnement';
$sqlliens ='SELECT distinct liens from formation order by liens';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// Création du tableau d'affichage avec une couleur de fond bgcolor= la couleur est en EXA #WWYYZZ WW pour le Rouge, YY pour le vert, ZZ pour le bleu.
echo "<table border=1 width=700 height=500 bgcolor=#efefff>";
// Index du tableau
// Création d'une ligne
echo "<tr>";
//création d'une colonne sur la ligne <td> pou créer la cellule </td> pour fermer
//appel de la fonction arraytoselect
echo "<td>Numéro </td>";
echo "<td>".arraytoselect ($sqlorganisme, "organisme")."</td>";
echo "<td>".arraytoselect ($sqlactionsth, "actionsth")."</td>";
echo "<td>".arraytoselect ($sqlrecule, "reçu le")."</td>";
echo "<td>".arraytoselect ($sqldf, "DF")."</td>";
echo "<td>".arraytoselect ($sqlintitule, "intitulé de l'actions")."</td>";
echo "<td>Début </td>";
echo "<td>Fin </td>";
echo "<td>Info de positionnement </td>";
echo "<td>Liens </td>";
// Fermeture de la ligne
echo "</tr>";
// affichage avec un boucle while
while($affichage = mysql_fetch_array($req))
{
echo "<tr>";
echo "<td>".$affichage['numero']."</td>";
echo "<td>".$affichage['organisme']."</td>";
echo "<td>".$affichage['actionsth']."</td>";
echo "<td>".$affichage['recule']."</td>";
echo "<td>".$affichage['df']."</td>";
echo "<td>".$affichage['intitule']."</td>";
echo "<td>".$affichage['debut']."</td>";
echo "<td>".$affichage['fin']."</td>";
echo "<td>".$affichage['infopositionnement']."</td>";
// Affichage du lien qui ouvre dans un autre page avec "target="
echo "<td><a href=".$affichage['liens']." target=new_page'>".liens."</a></td>";
// Fermeture de la ligne
echo "</tr>";
}
// Fermeture du tableau
echo "</table>";
// fermeture de la connexion
mysql_close($connect);
?>
Code : Tout sélectionner
<?
function arraytoselect ($array, $nom) {
$select = "<select name=\"$nom\">\n";
for ($i=0; $i<count($array); $i++) {
$select .= "<option value=\"$array[$i]\">$array[$i]</option>\n";
}
$select .= "</select>";
return $select;
}
?>
// on commence par déclarer un tableau dans lequel on va mettre les libellés que l'on veut afficher
$tabIntitule = array();
// puis la requête qui va ramener les différents intitulés présents en base pour le champ choisi
$sqlIntitule ='SELECT DISTINCT(intitule) FROM formation ORDER BY intitule';
// on exécute la requête sql et on récupère le résultat dans la variable $resultSet
$resultSet = mysql_query($sqlIntitule) or die (mysql_error());
while($row = mysql_fetch_array($resultSet)) { // on parcours chaque ligne de résultat
$tabIntitule[] = $row['intitule']; // en mettant la valeur du champ dans le tableau
}
// si on veut vérifier que le tableau s'est bien rempli
// print_r($tabIntitule);
// on passe le tableau en paramètre de la fonction avec le nom que l'on veut donner au select
$codeHtml = arraytoselect ($tabIntitule , "intitule");
echo $codeHtml; // on affiche le résultat de la fonction (c'est à dire le select) à l'endroit qui va bien
A noter, ceci n'est à faire que pour les champs pour lesquels tu veux un menu déroulant en haut de la colonne. Comme ce n'est apparement pas le cas de Id ou Numero, ce n'est pas la peine de les faire