Tableau à choix multiples pour liste

panershrek -  
 Panershrek -
Bonjour,

j'aimerais faire un tableau de la facon suivante pour un site de videos:

les + recentes | les mieux notés | les + vues

[liste des vidéos]

je possède deja les scripts php pour organiser les vidéos selon les criteres mais je ne sais pas comment les réunir dans un meme tableau et qui changent selon le choix (avec si possible le type ( +recentes +vues ..etc) en surbrillance.

Merci d'avance.
A voir également:

7 réponses

avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   4 510
 
Tu peux passer en argument GET ce par quoi tu veux trier.
Exemples :
- Pour la date : /videos.php?orderby=date
- Pour la note : /videos.php?orderby=note
- Pour le nb. de vues : /videos.php?orderby=vue

À toi d'utiliser la variable $_GET['orderby'] pour trier les résultats dans ta requête SQL (clause « ORDER BY »).
0
briiiiix Messages postés 624 Statut Membre 18
 
C'est une bonne solution si ça ne te dérange pas de rafraichir la page pour changer le critère de tri
Bienjoué avion-f16
0
avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   4 510
 
Pour éviter le rafraichissement il y a AJAX.
Mais bon, qu'il fasse déjà sans, ça sera pas mal, sinon il va s'embrouiller.
0
panershrek
 
Merci pour vos reponse, mais je ne cherche pas à savoir comment les trier, je ne sais pas si vous avez lu mon post en entier, comme je l'ai dis j'ai deja les scripts ex:

$query = "SELECT moviess.moviesid as id, movies.name as name, AVG(rating) as average FROM moviess LEFT JOIN ratings USING (gameid) WHERE 'display' = '1' GROUP BY ratings.movieid ORDER BY average DESC, movie.plays DESC LIMIT 5";

etc etc

ce que je veux c'est savoir comment creer la table pour les "assembler" et si possible sans avoir à rafraichir la page vu que c'est une petite partie.

Merci encore.
0
avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   4 510
 
Il faut gérer le tri avec la clause « ORDER BY ».
Tu as aussi des solutions en Javascript sans AJAX :
https://kryogenix.org/code/browser/sorttable/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
briiiiix Messages postés 624 Statut Membre 18
 
OK, tu peux fournir la structure de tes tables ?
0
Panershrek
 
Alors voila,

- à la base c'est "figé" et organisé par ordre alphabetique:

<?php
$dl="celll";
$i=0;

$q="SELECT * FROM games WHERE type='" . $type . "' AND 'display' = '1' ORDER BY name ASC LIMIT $true_start, $npp";
$rx=mysql_query($q);
$nr=@mysql_num_rows($rx);

while($row=mysql_fetch_array($rx)){
$game_id=stripslashes($row['gameid']);
$game_title=stripslashes($row['name']);
$game_description=stripslashes($row['description']);
$small_thumbnail=stripslashes($row['sthumb']);

$seoURL = "/game/" . $game_id . "/" . truncateName($row['name']) . ".html";

$i++;

if($i%2==0){
$dl="celll";
}
else{
$dl="celld";
}

if($i%2!=0){
echo "<tr class=$dl >";
}

?>

- et voici le code pour organiser par les + recents:

<?php
$query="SELECT 'gameid', 'name' FROM games WHERE type='$type' ORDER BY 'gameid' DESC LIMIT 5";
$result=mysql_query($query);

while($row=mysql_fetch_array($result)){

if(stripslashes($row['name'])!=""){
echo "\t\t\t\t\t\t\t\t\t\t<li class=\"reverseindent\"><a href=\"game.php?id=" . stripslashes($row['gameid']) . "\" class=\"link\">" . stripslashes($row['name']) . "</a></li>\n";
}

}
?>

- le code pour les mieux notés:

<?php
$query = "SELECT games.gameid as id, games.name as name, games.type, AVG(rating) as average FROM games LEFT JOIN ratings USING (gameid) GROUP BY ratings.gameid HAVING type = '$type' ORDER BY average DESC, games.plays DESC LIMIT 5";
$result = mysql_query($query);
echo mysql_error();

while($row = mysql_fetch_assoc($result))
{
echo "\t\t\t\t\t\t\t\t\t\t<li class=\"reverseindent\"><a href=\"game.php?id=" . stripslashes($row['id']) . "\" class=\"link\">" . stripslashes($row['name']) . "</a></li>\n";
}
?>

- Et enfin pour les + vue:

<?php
$dl="celll";
$i=0;

$q="SELECT * FROM games WHERE 'display' = '1' AND gameid!='".$id."' ORDER BY plays DESC LIMIT 0, 16";
$rx=mysql_query($q);
$nr=@mysql_num_rows($rx);

while($row=mysql_fetch_array($rx)){
$game_id=stripslashes($row['gameid']);
$game_title=stripslashes($row['name']);
$game_description=stripslashes($row['description']);
$small_thumbnail=stripslashes($row['sthumb']);
$large_thumbnail=stripslashes($row1['lthumb']);

$i++;

if($i%8==0){
$dl="celll";
}
else{
$dl="celld";
}

if($i%8!=0){
//echo "<tr class=$dl >";
}

?>

Je ne sais pas comment les reunir sous la forme de la premiere fonction avec choix multiples
0
Panershrek
 
up
0