Je veux en faite faire une page « TOP 20 des uploadeurs images » qui me sera réservée. J'ai fait le principal mais je ne sais pas trop comment dire « Sélectionnez les utilisateurs ayant le plus d'images (décroissant), mais pas plus de 20 ».
En faite, le soucis c'est que cela se passe sur deux tables.
Une table réservée aux images (dans laquelle le champ userid contient l'ID du membre ayant envoyé l'image) et une table réservée aux utilisateurs (avec un champ ID pouvant les identifier). Et avec ces deux champs, je dois trouver le moyen de les afficher. J'ai pensé à une jointure SQL mais je bloque je vous jure.
Voici ce que j'ai en vrac (il y a des variables en double et qui ne sont pas utilisées, je bloque donc je teste le maximum de truc) :
<?php
// On séléctionne tous les champs de la table « users ».
$initialisation_utilisateurs = mysql_query("SELECT * FROM users");
$initialisation_images = mysql_query("SELECT * FROM uploaded_images");
$initialisation_classement = mysql_query("SELECT users.id, uploaded_images.userid, FROM users, uploaded_images");
$initialisation_classement2 = mysql_query("SELECT COUNT(file) AS topuser FROM uploaded_images WHERE userid = ' " . mysql_real_escape_string($row1['id']) . " '");
// On effectue un tri (séléctionnez les 20 qui ont le plus d'images).
$top_utilisateur = mysql_query("SELECT COUNT(file) AS top_user FROM uploaded_images WHERE userid = '".mysql_real_escape_string($initialisation_utilisateurs['id'])."' ORDER BY top_user DESC LIMIT 0,10");
while($row1 = mysql_fetch_array($initialisation_utilisateurs))
{
if($row1['status']== 1) {
$row1['status'] = '<span style="color:green;">Activé</span>';
} elseif($row1['status']== 0) {
$row1['status'] = '<span style="color:red;">Désactivé</span>';
} elseif($row1['status']== 2) {
$row1['status'] = '<span style="color:red;">Banni</span>';
} else {
$row1['status'] = 'Inconnu';
}
echo '<tr>';
echo '<td>' . $row1['id'] . '</td>';
echo '<td><a href="members.php?page=admin&sp=users&manage=' . $row1['id'] . '">' . $row1['email'] . '</a></td>';
echo '<td>' . date("d/m/Y",$row1['create_date']) . '</td>';
echo '<td>' . $row1['status'] . '</td>';
$top = mysql_query("SELECT COUNT(file) AS topuser FROM uploaded_images WHERE userid = ' " . mysql_real_escape_string($row1['id']) . " '");
while($row2 = mysql_fetch_array($top)) {
echo '<td>' . $row2['topuser'] . '</td>';
echo '</tr>'; }
} Vous pouvez le voir c'est le bordel, mais là je bloque vraiment vraiment.Pourriez-vous m'aider ?
Merci à tous.