[PHP] classement des données

Discussion dans 'Web, design' créé par MbK_, 21 Juillet 2005.

Statut de la discussion:
Fermée.
  1. Offline
    MbK_ Etudjant
    slt à tous,


    j'ai besoin de classer des elements d'une base de donnée en fonction d'une moyenne que j'ai calculée auparavant.

    Mais comme beaucoup de ces moyennes sont les memes (varient entre 0 et 10) j'aimerais les reclasser en fonction du nombre de visites.

    exemple :

    j'ai 10 entrées dans ma table. 5 parmis ces 10 entrées ont un champs identique (le champ 'vote')

    J'aimerais classer ces 10 entrées en fonction du champ 'vote' mais comme 5 entrées ont le meme champ 'vote', le resultat sera faussé. Alors comment faire pour faire un sous-classement en fonction du champs 'visites'?

    Merci de votre aide
    MbK_, 21 Juillet 2005
    #1
  2. Offline
    zoheir cvm.mangaleet()
    order by vote, visites ?
    zoheir, 21 Juillet 2005
    #2
  3. Offline
    MbK_ Etudjant
    ca marche ou tu lances l'idee?
    MbK_, 21 Juillet 2005
    #3
  4. Offline
    zoheir cvm.mangaleet()
    en tout cas en SQL ca fonctionne :D
    zoheir, 21 Juillet 2005
    #4
  5. Offline
    MbK_ Etudjant
    je vais voir alors :)

    merci ;)
    MbK_, 21 Juillet 2005
    #5
  6. Offline
    MbK_ Etudjant
    Bon j'ai un probleme avec mes moyennes.

    J'ai le champ 'vote' et 'nb_votes'

    Je dois les classer par moyennes. Est ce que je peux faire ceci :

    Code:
    mysql_query('SELECT 
    	id, 
    	(vote/nb_votes) AS moyenne
        FROM table 
        ORDER BY moyenne DESC') or die (mysql_error()); 
    arf je coince
    MbK_, 21 Juillet 2005
    #6
  7. Offline
    _gilles Elite
    _gilles, 21 Juillet 2005
    #7
  8. Offline
    MbK_ Etudjant
    et pour ma requete, ca marche si je fais ainsi?


    Code:
    mysql_query('SELECT 
       id, 
       (vote/nb_votes) AS moyenne 
        FROM table 
        ORDER BY moyenne DESC, visites DESC') or die (mysql_error()); 
    MbK_, 21 Juillet 2005
    #8
  9. Offline
    Hayato Touriste
    Ben essaies et tu le sauras :roll:
    Hayato, 21 Juillet 2005
    #9
  10. Offline
    MbK_ Etudjant
    ca ne marche pas mais j'ai p-e fait ca mal....


    pas d'autres idées?
    MbK_, 22 Juillet 2005
    #10
  11. Offline
    Hayato Touriste
    Tu as quoi comme erreur? Message d'erreur ou il fait pas ce qu'il faut?
    Hayato, 22 Juillet 2005
    #11
  12. Offline
    MbK_ Etudjant
    il n'affiche rien..

    en fait c'est pour mon site www.friteries.net

    voici le script qui ne fonctionne pas :

    Code:
    <?
    bdd();
    mysql_query('SELECT 
       friterie_friteries.id, 
       (vote_friterie /nb_votes) AS moyenne 
        FROM friterie_friteries 
        ORDER BY moyenne DESC, click_friterie DESC') or die (mysql_error());
    $number = @mysql_num_rows($query);
    if (empty($number)){
    	echo "rien";
    }
    else{
    	while ($friteries=mysql_fetch_array($query)){
    		echo $friteries['id'];
    	} // while
    } //else
    	?>
    MbK_, 25 Juillet 2005
    #12
  13. Offline
    Hayato Touriste
    Je vois que tu utilises la variable tableau $query et que tu la parcours pour l'affichage mais tu n'as pas stocké le résultat de ta requête dedans.
    Hayato, 25 Juillet 2005
    #13
  14. Offline
    Jereck Procrastinateur
    Equipe GamerZ.be
    Normalement, en SQL, tu as des fonctions internes pour calculer une moyenne je crois
    Jereck, 25 Juillet 2005
    #14
  15. Offline
    MbK_ Etudjant
    AVG() je pense.


    mais je ne vois pas comment l'utiliser, c'est ca le probleme.
    MbK_, 25 Juillet 2005
    #15
  16. Offline
    Jereck Procrastinateur
    Equipe GamerZ.be
    Un truc genre :

    Code:
    SELECT 
       friterie_friteries.id, 
       AVG(vote_friterie) AS moyenne 
        FROM friterie_friteries 
        ORDER BY moyenne DESC, click_friterie DESC
    Je pense
    Jereck, 25 Juillet 2005
    #16
  17. Offline
    Bingo Beer Addict
    Si tu fais une moyenne tu dois faire un groupement :

    Code:
    SELECT 
       friterie_friteries.id, 
       AVG(vote_friterie) AS moyenne 
        FROM friterie_friteries 
        GROUP BY friterie_friteries.id
        ORDER BY moyenne DESC, click_friterie DESC
    Bingo, 25 Juillet 2005
    #17
  18. Offline
    MbK_ Etudjant
    je comprends pas tres bien à quoi sert le group by...
    MbK_, 25 Juillet 2005
    #18
  19. Online
    wilson_ ex membre
    Quand tu utilises certains fonctions comme avg, sum etc tu dois obligatoirement mettre à la fin un groupe by sur tous les champs que tu selectionnes
    wilson_, 25 Juillet 2005
    #19
  20. Offline
    Bingo Beer Addict
    Oui c'est obligatoire, car c'est ce group by qui dit quelle moyenne tu calcules.
    Imagine que tu aies une table d'élèves avec leurs notes et leur classe. Tu peux vouloir calculer la moyenne des élèves, ou la moyenne des classes. Dans le premier cas tu regroupes donc par élèves, dans le deuxième tu regroupes par classe.
    Bingo, 25 Juillet 2005
    #20
Statut de la discussion:
Fermée.