Aller au contenu
  • Veuillez ne pas poster de message pour but d'insulter, incitation à la haine, propos sexuels et tout autre qui ne respecte pas nos conditions générales !

Faire un classement en PHP !?


Invité

Messages recommandés

Bonjour à tous et à toutes!

 

Depuis quelques jours voir semaines, je conçois un site web je n'en dis pas plus sur le projet...

En soit il avance bien, mais depuis quelques jours il est arrêté pour une "connerie" que justement je n'arrive pas à trouver donc à résoudre.

 

Il s'agit de crée un classement.

Dans une table dans ma base de donnée que j'ai une catégorie "points", et il est possible que sur le site des histoires ajoutes des points à certains sujets..

Et j'aimerai mettre en avant donc faire un classement du sujet qui à le plus de points à celui qui n'en a le moins et j'aimerai en affiché 20 aux maximums.

 

PS: J'ai lu qu'il fallait peut-être utilisé un truc du style "DISTINCT" dans la requête PHP (Je veux faire sa en PHP et non en SQL)

 

En espérant vous avoir bien expliquer et avoir des réponses!

 

Bon courage à tous pour ceux qui passent des épreuves..

Cordialement, Lucas

Lien à poster
Partager sur d’autres sites

Pour avoir accès à ce lien, merci de vous connecter.

 

Comprends-tu mieux?

 

On possède tous des points de popularité et grâce à cela il y a un classement des plus populaires et j'aimerai faire pareil sauf que moi c'est pas pour des membres mais c'est le même principe :)

Lien à poster
Partager sur d’autres sites

Tu es un peu obligé de faire ça en SQL. Mais dit SQL, dit PHP.

Pour ta requête ça va être assez simple, mais il va falloir faire une boucle pour afficher les 20 premiers.

Requête:

SELECT * FROM sujet ORDER BY points DESC

N'hésite surtout pas à utiliser PDO pour les requêtes. MySQL c'est un peu dépassé.

Lien à poster
Partager sur d’autres sites

Salut, c'est très simple fait sa en PDO:

$affiche = &bdd->query('SELECT * FROM nomdelatable ORDER BY -id LIMIT 0.20');

 

---------------

Et pour les afficher tu fais, 

<?php while($aff = $affiche->fetch()) { ?>

<?php echo aff['points']; ?>

<?php } ?>

Lien à poster
Partager sur d’autres sites

$req = $bdd->query('SELECT * FROM users ORDER BY points DESC LIMIT 20');

 

while($r = $req->fetch()) {

echo '{{username}} -> '.$r['points'].'';

}

Modifié par Arwantys1

JavaScript for ever

  • J'aime 1
Lien à poster
Partager sur d’autres sites

il y a 27 minutes, PhCmDev a dit :

Salut, c'est très simple fait sa en PDO:

$affiche = &bdd->query('SELECT * FROM nomdelatable ORDER BY -id LIMIT 0.20');

 

---------------

Et pour les afficher tu fais, 

<?php while($aff = $affiche->fetch()) { ?>

<?php echo aff['points']; ?>

<?php } ?>

Order by points, pas l'id mdrrr

JavaScript for ever

Lien à poster
Partager sur d’autres sites

il y a 18 minutes, PhCmDev a dit :

Salut, c'est très simple fait sa en PDO:

$affiche = &bdd->query('SELECT * FROM nomdelatable ORDER BY -id LIMIT 0.20');

 

---------------

Et pour les afficher tu fais, 

<?php while($aff = $affiche->fetch()) { ?>

<?php echo aff['points']; ?>

<?php } ?>

Je comprends pas pourquoi tu order by id ... ^^

 

Voici un code tout prêt:

 

<?php

$select = $bdd->prepare('SELECT * FROM users ORDER BY points DESC LIMIT 20');
$select->execute();

while($points = $select->fetch(PDO::FETCH_OBJ){ ?>
  <p><?= $points->username . ": " . $points->points; ?>
<?php } ?>

 

Lâches un like :y: ! ou pas

Lien à poster
Partager sur d’autres sites

Il y a 1 heure, MathisL a dit :

Order by points, pas l'id mdrrr

Oui mdr, pasque moi j'affiche jamais une colonne en principe. J'affiches toujours tout pour sa je fais ORDER BY -id depuis la dernière ID ou autres. Mais c'est exact fail de ma part, c'est bien ORDER BY points puisque lui veut afficher dans l'ordre d'une colonne.;)

Lien à poster
Partager sur d’autres sites

il y a une heure, UnderFR a dit :

Je comprends pas pourquoi tu order by id ... ^^

 

Voici un code tout prêt:

 


<?php

$select = $bdd->prepare('SELECT * FROM users ORDER BY points DESC LIMIT 20');
$select->execute();

while($points = $select->fetch(PDO::FETCH_OBJ){ ?>
  <p><?= $points->username . ": " . $points->points; ?>
<?php } ?>

 

Oui mdr, pasque moi j'affiche jamais une colonne en principe. J'affiches toujours tout pour sa je fais ORDER BY -id depuis la dernière ID ou autres. Mais c'est exact fail de ma part, c'est bien ORDER BY points puisque lui veut afficher dans l'ordre d'une colonne.

Lien à poster
Partager sur d’autres sites

il y a 1 minute, PhCmDev a dit :

Oui mdr, pasque moi j'affiche jamais une colonne en principe. J'affiches toujours tout pour sa je fais ORDER BY -id depuis la dernière ID ou autres. Mais c'est exact fail de ma part, c'est bien ORDER BY points puisque lui veut afficher dans l'ordre d'une colonne.

 

Sinon pourquoi un "-id" ?

Lâches un like :y: ! ou pas

Lien à poster
Partager sur d’autres sites

il y a 2 minutes, UnderFR a dit :

 

Sinon pourquoi un "-id" ?

Bah -id sa affiche le dernier ID, genre tu postes 2 articles sa va afficher le dernier ID de la table. Comme je l'ai dit c'était une fail de ma part car lui veut afficher les points (un colonne) du coup ORDER BY points. Car moi ce que j'avait donner comme code, c'est là colonne comple.

Lien à poster
Partager sur d’autres sites

à l’instant, UnderFR a dit :

Non ça j'avais compris, mais tu viens de m'apprendre que -id ça affiche le dernier ID ^^

Ahh d'accord, oui oui j'tassure sa que marche ;)

Lien à poster
Partager sur d’autres sites

Merci à vous, effectivement c'était très simple :-)

Je me suis pris la tête pour très peu m'enfin ça me servira de leçon :-D

 

Bonne fin de journée!

Lien à poster
Partager sur d’autres sites

  • 2 ans plus tard...
  • Administrateur
    Salut Lucas Orsini ,
    Ton sujet a été déplacé pour une des deux raisons suivantes :

    - Ta demande a été résolue.

    - Ton sujet se trouvait dans la mauvaise catégorie.

        
      Ceci est un message automatique.

⠀⠀Founder of Inshare.fr

⠀⠀Baylife moderator

⠀⠀Twitch channel moderator

⠀⠀French translator Trucksbook.eu

𝐹𝑒𝑒𝑙 𝑓𝑟𝑒𝑒 𝑡𝑜 𝑤𝑟𝑖𝑡𝑒 𝑎 𝑐𝑜𝑚𝑚𝑒𝑛𝑡

—————————————————

╱⠀⠀⠀⠀⠀⠀⠀⠀⠀Règlements⠀⠀ //⠀⠀Abonnements⠀⠀ //⠀⠀ Discord   ⠀⠀⠀⠀⠀⠀⠀⠀⠀╲

 

signature.png

Lien à poster
Partager sur d’autres sites

  • Administrateur
    Salut Lucas Orsini ,
    Ton sujet a été déplacé pour une des deux raisons suivantes :

    - Ta demande a été résolue.

    - Ton sujet se trouvait dans la mauvaise catégorie.

        
      Ceci est un message automatique.

⠀⠀Founder of Inshare.fr

⠀⠀Baylife moderator

⠀⠀Twitch channel moderator

⠀⠀French translator Trucksbook.eu

𝐹𝑒𝑒𝑙 𝑓𝑟𝑒𝑒 𝑡𝑜 𝑤𝑟𝑖𝑡𝑒 𝑎 𝑐𝑜𝑚𝑚𝑒𝑛𝑡

—————————————————

╱⠀⠀⠀⠀⠀⠀⠀⠀⠀Règlements⠀⠀ //⠀⠀Abonnements⠀⠀ //⠀⠀ Discord   ⠀⠀⠀⠀⠀⠀⠀⠀⠀╲

 

signature.png

Lien à poster
Partager sur d’autres sites

×
×
  • Créer...