Top 20 uploadeur photo

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Top 20 uploadeur photo

Re: Top 20 uploadeur photo

par moogli » 14 avr. 2012, 16:35

Manque un group by userid et une limite (20)

@+

Re: Top 20 uploadeur photo

par juliette » 14 avr. 2012, 16:26

salut, un truc de ce genre devrait te mettre sur la vois je pense:
'SELECT   
    img.id      AS  id_img,
    img.id_user AS  im_id_user,
                                                
    us.user_id  AS  id_user
                                             
    FROM images AS  img
                                                
    LEFT OUTER JOIN table_user AS  us ON img.id_user = us.id_user
                                               
    // la suite ici... '

Top 20 uploadeur photo

par Credule » 14 avr. 2012, 16:08

Bonjour,

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.