PHP/HTML tableau tri dynamique
Fermé
nico
-
25 nov. 2004 à 10:01
neo_selen Messages postés 153 Date d'inscription dimanche 11 juillet 2010 Statut Membre Dernière intervention 29 juin 2016 - 30 mai 2012 à 15:54
neo_selen Messages postés 153 Date d'inscription dimanche 11 juillet 2010 Statut Membre Dernière intervention 29 juin 2016 - 30 mai 2012 à 15:54
Bonjour,
j'aimerais savoir comment faire pour trier un tableaux de facon dynamique en php. Genre, l'utilisateur clique sur une colonne et le tableaux se trie en fonction de la colonne choisie ...
Si vous pouviez m'envoyer des exemples de codes ou des liens ...
merci a tous, et bonne journée
PS: interdit d'utiliser du javascript ... :-)
j'aimerais savoir comment faire pour trier un tableaux de facon dynamique en php. Genre, l'utilisateur clique sur une colonne et le tableaux se trie en fonction de la colonne choisie ...
Si vous pouviez m'envoyer des exemples de codes ou des liens ...
merci a tous, et bonne journée
PS: interdit d'utiliser du javascript ... :-)
A voir également:
- Tableau html php dynamique
- Tableau croisé dynamique - Guide
- Tableau word - Guide
- Tableau ascii - Guide
- Trier tableau excel - Guide
- Editeur html - Télécharger - HTML
9 réponses
maily
Messages postés
7556
Date d'inscription
lundi 26 juin 2000
Statut
Contributeur
Dernière intervention
23 juin 2023
453
25 nov. 2004 à 18:17
25 nov. 2004 à 18:17
moi, je mettrais ça!
Et après dans ta fonction
Maily :-))))
Boumj'chtattrape
$requete="SELECT Document.Titre, Document.Domaine, Document.Resume, Document.Date_creation FROM Projet.Document, Projet.Auteur, Projet.Ecrire WHERE Auteur.Login = '$login' and Ecrire.Statut='$statut' and Projet.Auteur.Auteur_id = Projet.Ecrire.Auteur_id and Projet.Ecrire.Doc_id = Projet.Document.Doc_id ORDER BY ".$tri." DESC;";
Et après dans ta fonction
## affichage de l'en-tete du tableau HTML avec les noms des champs echo "<table border=2 CELLPADDING=\"5\" CELLSPACING=\"5\" WIDTH=\"70%\" align=left><tr>"; for($i=0; $i < $nbchamps; $i++) { $tabchamps[$i] = mysql_field_name($resultat,$i); echo "<th><a href="nomDeTaPage.php?tri=$tabchamps[$i]">$tabchamps[$i]</a></th>"; } echo "</tr>";
Maily :-))))
Boumj'chtattrape
voila le code de la page principal avec un appel de fonction pour l'affichage du resultat de la requete:
# recupration de la liste des documents
$requete="SELECT Document.Titre, Document.Domaine, Document.Resume, Document.Date_creation FROM Projet.Document, Projet.Auteur, Projet.Ecrire WHERE Auteur.Login = '$login' and Ecrire.Statut='$statut' and Projet.Auteur.Auteur_id = Projet.Ecrire.Auteur_id and Projet.Ecrire.Doc_id = Projet.Document.Doc_id;";
$resultat = mysql_query($requete);
if (!$resultat ){
die('Invalid query: ' . mysql_error());
}
##Affichage des resultats
tab_res($resultat);
La fonction tab_res :
## quelle est la dimension du résultat ?
$nblignes=mysql_num_rows($resultat);
$nbchamps=mysql_num_fields($resultat);
## affichage de l'en-tete du tableau HTML avec les noms des champs
echo "<table border=2 CELLPADDING=\"5\" CELLSPACING=\"5\" WIDTH=\"70%\" align=left><tr>";
for($i=0; $i < $nbchamps; $i++) {
$tabchamps[$i] = mysql_field_name($resultat,$i);
echo "<th>$tabchamps[$i]</th>";
}
echo "</tr>";
## affichage des enregistrements du résultat
for($i=0; $i < $nblignes; $i++) {
$ligne = mysql_fetch_row($resultat);
echo "<tr>";
echo "<td><A HREF=\"modif.php?namedoc=$ligne[0]\" TARGET=\"Action\"> $ligne[0]</A></td>";
for($j=1; $j < $nbchamps; $j++) {
echo "<td>$ligne[$j]</td>";
}
echo "</tr>";
}
echo "</table>";
}
Voila ... en gros c'est ca ...
merci
# recupration de la liste des documents
$requete="SELECT Document.Titre, Document.Domaine, Document.Resume, Document.Date_creation FROM Projet.Document, Projet.Auteur, Projet.Ecrire WHERE Auteur.Login = '$login' and Ecrire.Statut='$statut' and Projet.Auteur.Auteur_id = Projet.Ecrire.Auteur_id and Projet.Ecrire.Doc_id = Projet.Document.Doc_id;";
$resultat = mysql_query($requete);
if (!$resultat ){
die('Invalid query: ' . mysql_error());
}
##Affichage des resultats
tab_res($resultat);
La fonction tab_res :
## quelle est la dimension du résultat ?
$nblignes=mysql_num_rows($resultat);
$nbchamps=mysql_num_fields($resultat);
## affichage de l'en-tete du tableau HTML avec les noms des champs
echo "<table border=2 CELLPADDING=\"5\" CELLSPACING=\"5\" WIDTH=\"70%\" align=left><tr>";
for($i=0; $i < $nbchamps; $i++) {
$tabchamps[$i] = mysql_field_name($resultat,$i);
echo "<th>$tabchamps[$i]</th>";
}
echo "</tr>";
## affichage des enregistrements du résultat
for($i=0; $i < $nblignes; $i++) {
$ligne = mysql_fetch_row($resultat);
echo "<tr>";
echo "<td><A HREF=\"modif.php?namedoc=$ligne[0]\" TARGET=\"Action\"> $ligne[0]</A></td>";
for($j=1; $j < $nbchamps; $j++) {
echo "<td>$ligne[$j]</td>";
}
echo "</tr>";
}
echo "</table>";
}
Voila ... en gros c'est ca ...
merci
maily
Messages postés
7556
Date d'inscription
lundi 26 juin 2000
Statut
Contributeur
Dernière intervention
23 juin 2023
453
25 nov. 2004 à 10:26
25 nov. 2004 à 10:26
Bonjour!!!
Alors, si tes données de ton tableau sont dans une base de données, ce sera très simple. Il suffit de rajouter à la fin de la requête "oder by nomDuChamps desc".
Sinon, et bien, je ne pense pas qu'on puisse...
voilà! ;-)
Maily :-))))
Boumj'chtattrape
Alors, si tes données de ton tableau sont dans une base de données, ce sera très simple. Il suffit de rajouter à la fin de la requête "oder by nomDuChamps desc".
Sinon, et bien, je ne pense pas qu'on puisse...
voilà! ;-)
Maily :-))))
Boumj'chtattrape
neo_selen
Messages postés
153
Date d'inscription
dimanche 11 juillet 2010
Statut
Membre
Dernière intervention
29 juin 2016
15
30 mai 2012 à 15:54
30 mai 2012 à 15:54
order by
et pas: oder by
(faute de frappe je suppose)
et pas: oder by
(faute de frappe je suppose)
oui c'est dans une base mais le truc c'est que ca doit etre dynamique et donc que ca puisse etre trié en temps réel quand l'utilisateur clic sur la colonne ...
merci de ta reponse
nico
merci de ta reponse
nico
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
maily
Messages postés
7556
Date d'inscription
lundi 26 juin 2000
Statut
Contributeur
Dernière intervention
23 juin 2023
453
25 nov. 2004 à 14:32
25 nov. 2004 à 14:32
Le temps réel sur le net, c'est le rafraichissement de la page...
Donc, quand ils cliquent sur la colonne, tu dois réafficher la page et donc refaire ta requête! D'où l'intéret de trier par le champs sur lequel ils ont cliqués....
Mets moi ton code, je vais te montrer...
Maily :-))))
Boumj'chtattrape
Donc, quand ils cliquent sur la colonne, tu dois réafficher la page et donc refaire ta requête! D'où l'intéret de trier par le champs sur lequel ils ont cliqués....
Mets moi ton code, je vais te montrer...
Maily :-))))
Boumj'chtattrape
Bonjour à vous.
Je me permet de placer le bout de code à mon tour, car j'ai le même problème et je ne trouve pas la solution, c'est le même style que nico:
$sql="SELECT CODE_CONVERGENCE_IET, NOM_COURT, NOM_LONG FROM applications";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
echo"<center>";
echo"<table border='2'bordercolor='black'>";
echo"<br>";echo"<br>";
echo"<b><center><h4><a href='/Site_application_ratp/client/recherche.php3'>Recherche</a></h4></b>";
echo"<tr><td colspan=6 align=center bgcolor='#E6E8FA'><b>Code Convergence</b></td>";
echo"<td colspan=6 align=center bgcolor='#E6E8FA'><b>Nom application</b></td>";
echo"<td colspan=6 align=center bgcolor='#E6E8FA'><b>Description</b></td>";
while ($val=mysql_fetch_array($req))
{
echo'<tr><td colspan=6 align=center bgcolor="#E0E0E0"><a href="consult_tables.php3?CODE_CONVERGENCE_IET='.$val['CODE_CONVERGENCE_IET'].'">'.$val['CODE_CONVERGENCE_IET'].'</a></td>';
echo"<td colspan=6 align=center bgcolor='#E0E0E0'>".$val['NOM_COURT']."</td>";
echo"<td colspan=6 align=center bgcolor='#E0E0E0'>".$val['NOM_LONG']."</td>";
echo"<tr>";
}
echo"</tr>";
echo"</table>";
Par ailleurs dans le code plus haut, la variable $tri, où doit elle être déclaré et de quelle manière? je n'ai pas vu.
Merci
Je me permet de placer le bout de code à mon tour, car j'ai le même problème et je ne trouve pas la solution, c'est le même style que nico:
$sql="SELECT CODE_CONVERGENCE_IET, NOM_COURT, NOM_LONG FROM applications";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
echo"<center>";
echo"<table border='2'bordercolor='black'>";
echo"<br>";echo"<br>";
echo"<b><center><h4><a href='/Site_application_ratp/client/recherche.php3'>Recherche</a></h4></b>";
echo"<tr><td colspan=6 align=center bgcolor='#E6E8FA'><b>Code Convergence</b></td>";
echo"<td colspan=6 align=center bgcolor='#E6E8FA'><b>Nom application</b></td>";
echo"<td colspan=6 align=center bgcolor='#E6E8FA'><b>Description</b></td>";
while ($val=mysql_fetch_array($req))
{
echo'<tr><td colspan=6 align=center bgcolor="#E0E0E0"><a href="consult_tables.php3?CODE_CONVERGENCE_IET='.$val['CODE_CONVERGENCE_IET'].'">'.$val['CODE_CONVERGENCE_IET'].'</a></td>';
echo"<td colspan=6 align=center bgcolor='#E0E0E0'>".$val['NOM_COURT']."</td>";
echo"<td colspan=6 align=center bgcolor='#E0E0E0'>".$val['NOM_LONG']."</td>";
echo"<tr>";
}
echo"</tr>";
echo"</table>";
Par ailleurs dans le code plus haut, la variable $tri, où doit elle être déclaré et de quelle manière? je n'ai pas vu.
Merci
à la place de $tri dans le code en haut tu mets $_GET['tri'] car le lien href utilise la methode get
Je voudrait moi aussi de l'aide , pour que mon tableau s'agrandissent automatiquement !
// Connexion et sélection de la base
$link = mysql_connect("sql.free.fr", "mon identifiant", "mon mot de passe")
or die("Impossible de se connecter");
echo "Voici la liste des membres du site";
mysql_select_db("membres") or die("Could not select database");
// Exécuter des requêtes SQL
$requete=mysql_query("SELECT pseudo,sexe,mail FROM membres");
while($resultat=mysql_fetch_row($requete))
{
$pseudo=$resultat[0];
$sexe=$resultat[1];
$mail=$resultat[2];
}
echo "<table style='text-align: left; width: 100%;' border='1' cellpadding='2' cellspacing='2'>\n";
echo "<tbody>\n";
echo "<tr>\n";
echo "<td style='text-align: center; vertical-align: top;'>Pseudo</td>\n";
echo "<td style='text-align: center; vertical-align: top;'>Adresse\n";
echo "E-Mail</td>\n";
echo "<td style='text-align: center; vertical-align: top;'>Sexe</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td style='text-align: left; vertical-align: top;'>$pseudo</td>\n";
echo "<td style='text-align: left; vertical-align: top;'>$mail</td>\n";
echo "<td style='text-align: left; vertical-align: top;'>$sexe</td>\n";
echo "</tr>\n";
echo "</tbody>\n";
echo "</table>\n";
// Connexion et sélection de la base
$link = mysql_connect("sql.free.fr", "mon identifiant", "mon mot de passe")
or die("Impossible de se connecter");
echo "Voici la liste des membres du site";
mysql_select_db("membres") or die("Could not select database");
// Exécuter des requêtes SQL
$requete=mysql_query("SELECT pseudo,sexe,mail FROM membres");
while($resultat=mysql_fetch_row($requete))
{
$pseudo=$resultat[0];
$sexe=$resultat[1];
$mail=$resultat[2];
}
echo "<table style='text-align: left; width: 100%;' border='1' cellpadding='2' cellspacing='2'>\n";
echo "<tbody>\n";
echo "<tr>\n";
echo "<td style='text-align: center; vertical-align: top;'>Pseudo</td>\n";
echo "<td style='text-align: center; vertical-align: top;'>Adresse\n";
echo "E-Mail</td>\n";
echo "<td style='text-align: center; vertical-align: top;'>Sexe</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td style='text-align: left; vertical-align: top;'>$pseudo</td>\n";
echo "<td style='text-align: left; vertical-align: top;'>$mail</td>\n";
echo "<td style='text-align: left; vertical-align: top;'>$sexe</td>\n";
echo "</tr>\n";
echo "</tbody>\n";
echo "</table>\n";