bonjour à tous,
je viens de bricoler un petit tableau, qui n'est certes pas très design, mais fonctionne très bien.
Il récupère les infos sur une base de donnée puis me les affiches.
je souhaiterai savoir comment je peux faire pour qu'il me classe les infos mais au lieux qu'il parte de la colonne 1 il me classe la colonne 2. Pas forcement de manières dynamique, je clique, il change le classement. Si j'ai un paramètre à changer dans la pages, ça ne me dérange pas. Merci d'avance.
<?php
session_start();
require("auth.php");
if(Auth::isLogged()){
}
else{
header('Location:index.php');
}
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>page privee</title>
<body>
page privee
<?php
// information pour la connection à la DB
$host = ' ******';
$user = ' *******';
$pass = ' *******';
$db = ' ***********';
// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
// requête SQL qui compte le nombre total d'enregistrement dans la table et qui
//récupère tous les enregistrements
$select = 'SELECT username,user_email,user_type FROM phpbb_users';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
$select2 = 'SELECT user_id,group_id FROM phpbb_user_group';
$result2 = mysql_query($select2,$link) or die ('Erreur : '.mysql_error() );
$total2 = mysql_num_rows($result2);
// si on a récupéré un résultat on l'affiche.
if($total) {
// debut du tableau
echo '<table bgcolor="#FFFFFF">'."\n";
// première ligne on affiche les titres prénom et surnom dans 2 colonnes
echo '<tr>';
echo '<td bgcolor="#669999"><b><u>ID</u></b></td>';
echo '<td bgcolor="#669999"><b><u>mail</u></b></td>';
echo '<td bgcolor="#669999"><b><u>type</u></b></td>';
echo '<td bgcolor="#669999"><b><u>id groupe</u></b></td>';
echo '<td bgcolor="#669999"><b><u>groupe</u></b></td>';
echo '</tr>'."\n";
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
while(($row = mysql_fetch_array($result))&&($row2 = mysql_fetch_array($result2))) {
if(($row2"group_id"])!=6){
echo '<tr>';
echo '<td bgcolor="#CCCCCC">'.$row"username"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row"user_email"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row"user_type"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row2"user_id"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row2"group_id"].'</td>';
echo '</tr>'."\n";
}
else{
}
}
echo '</table>'."\n";
// fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';
// on libère le résultat
mysql_free_result($result);
?>
<a href="logout.php">Se déconnecter</a>
</body>
</html>
en php:
<a href="?col=name&order=ASC">name</a>
print_r($_GET)
ou sinon il existe des scripts javascript qui t'eviteraient le rechargement de la page
NB: je t'invite a modifier les login et mdp de ta bdd, maintenant qu'on les connait
eric
salut,
tu peux rajouter une clause ORDER BY dans ta requete.
sinon, j'ai pas coprisle but des deux requetes $select et $select2 . est ce que requete avec jointure ne repondrait pas a ton besoin?
eric
c'est un infâme bricolage, car je joue sur 2 tables de ma base, est comme mes connaissance en php sont proche du zéro absolue j'ai essayer ça, et ça a marché.
Requete avec jointure, propablement faut que je me documente dessus.
Pour ton ORDER BY peut tu me guider un peu?
Merci d'avance
Tu fais un ORDER BY ASC OU DESC , cela classera ton tableau par valeur descendante ou ascendante (pour faire mieux tu peux integrer ces valeurs dans une variable $classement par exemple qui contiendrait par un petit if et else ces différentes possibilités ^^. Voilà si ça peut te guider
je te conseil de voir ici ORDER BY lis la partie ORDER BY et comme indiqué par Erfou utilises les jointures il y'a des tutos sur grafikart
merci des infos
une fois appliqué ça me donne ça, je pense que l'on peut optimiser mais bon, c'est pas ma priorité
<?php
session_start();
require("auth.php");
if(Auth::isLogged()){
}
else{
header('Location:index.php');
}
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>page privee</title>
<body>
page privee
<?php
// information pour la connection à la DB
$host = ' ******';
$user = ' *******';
$pass = ' *******';
$db = ' *********';
// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
// requête SQL qui compte le nombre total d'enregistrement dans la table et qui
//récupère tous les enregistrements
$select = 'SELECT phpbb_users.user_id,username,user_email,user_type,user_posts,user_lastpage,phpbb_user_group.user_id,phpbb_user_group.group_id
FROM phpbb_users
LEFT JOIN phpbb_user_group ON phpbb_users.user_id=phpbb_user_group.user_id
ORDER BY user_posts ASC';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
// si on a récupéré un résultat on l'affiche.
if($total) {
// debut du tableau
echo '<table bgcolor="#FFFFFF">'."\n";
// première ligne on affiche les titres prénom et surnom dans 2 colonnes
echo '<tr>';
echo '<td bgcolor="#669999"><b><u>ID</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Pseudo</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Mail</u></b></td>';
echo '<td bgcolor="#669999"><b><u>nombre de post</u></b></td>';
echo '<td bgcolor="#669999"><b><u>derniére action</u></b></td>';
echo '<td bgcolor="#669999"><b><u>numéro dans groupe</u></b></td>';
echo '<td bgcolor="#669999"><b><u>indicatif des groupes</u></b></td>';
echo '</tr>'."\n";
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
while(($row = mysql_fetch_array($result))) {
if(($row"user_id"])>53){
echo '<tr>';
if(($row"user_posts"])==0){
echo '<td bgcolor="#EE5353">'.$row"user_id"].'</td>';
echo '<td bgcolor="#EE5353">'.$row"username"].'</td>';
echo '<td bgcolor="#EE5353">'.$row"user_email"].'</td>';
echo '<td bgcolor="#EE5353">'.$row"user_posts"].'</td>';
echo '<td bgcolor="#EE5353">'.$row"user_lastpage"].'</td>';
echo '<td bgcolor="#EE5353">'.$row"user_id"].'</td>';
echo '<td bgcolor="#EE5353">'.$row"group_id"].'</td>';
}
else if(($row"user_posts"])<5){
echo '<td bgcolor="#E7A83C">'.$row"user_id"].'</td>';
echo '<td bgcolor="#E7A83C">'.$row"username"].'</td>';
echo '<td bgcolor="#E7A83C">'.$row"user_email"].'</td>';
echo '<td bgcolor="#E7A83C">'.$row"user_posts"].'</td>';
echo '<td bgcolor="#E7A83C">'.$row"user_lastpage"].'</td>';
echo '<td bgcolor="#E7A83C">'.$row"user_id"].'</td>';
echo '<td bgcolor="#E7A83C">'.$row"group_id"].'</td>';
}
else if(($row"user_posts"])>59){
echo '<td bgcolor="#6FF15B">'.$row"user_id"].'</td>';
echo '<td bgcolor="#6FF15B">'.$row"username"].'</td>';
echo '<td bgcolor="#6FF15B">'.$row"user_email"].'</td>';
echo '<td bgcolor="#6FF15B">'.$row"user_posts"].'</td>';
echo '<td bgcolor="#6FF15B">'.$row"user_lastpage"].'</td>';
echo '<td bgcolor="#6FF15B">'.$row"user_id"].'</td>';
echo '<td bgcolor="#6FF15B">'.$row"group_id"].'</td>';
}
else{
echo '<td bgcolor="#CCCCCC">'.$row"user_id"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row"username"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row"user_email"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row"user_posts"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row"user_lastpage"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row"user_id"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row"group_id"].'</td>';
}
echo '</tr>'."\n";
}
else{
}
}
echo '</table>'."\n";
// fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';
// on libère le résultat
mysql_free_result($result);
?>
<a href="logout.php">Se déconnecter</a>
</body>
</html>
Et maintenant, je sais je pousse le bouchon loin est 'il possible que si je clique sur une colonne, ça me change mon type de classement, je pense qu'en titre de colonne je vais avoir un <a ref...., mais après je sèche.
un indice, un indice, un indice!!!!!
mais grand merci pour tous ça déjà
je me permet de déposer un petit mémo, ça pourrait peut être aider quelqu'un pour le left join, je sais c'est con mais....
<u>je veux réunir la table</u> phpbb_group <u> avec la table</u> phpbb_user_group <u>qui contient</u> group_id <u>car</u> phpbb_group <u>contien aussi</u> group_id
<u>LEFT JOIN</u> phpbb_groups <u>ON</u> phpbb_user_group <u>.</u> group_id <u>=</u> phpbb_groups <u>.</u> group_id