Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3396 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  classement

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

classement

n°919017
karou
Posté le 09-12-2004 à 17:49:54  profilanswer
 

bonjour,
 
J'ai besoin de faire un classement type championnat en fonction de plusieurs criteres : nb de pts, puis si egalité entre 1 ou plusieurs equipes, en fonction des resultats des matches entre les equipes a egalité, etc...
j'ai stocké ttes mes valeurs dans un tableau multidimensionnel. MAis je cherche une methode pr le trier en fonction de mes criteres. array_multisort permet de trier ts les tableau mais pas de trier dans sa globalité selon mes criteres. Vous avez la solution ? allez je suis sure que quelqu'un a fait ca en exercice de cours!!!
 

mood
Publicité
Posté le 09-12-2004 à 17:49:54  profilanswer
 

n°919021
skeye
Posté le 09-12-2004 à 17:51:51  profilanswer
 

Tu les récupères d'où tes données? Parce-que si c'est d'une requête SQL ya sûrement moyen de trier avant...:o


---------------
Can't buy what I want because it's free -
n°919385
karou
Posté le 10-12-2004 à 09:49:31  profilanswer
 

ouioui je recupere mes données d'une requete sql mais je recupere les resultats des matches. donc apres mon code compte les points, les buts, etc etc.. mais c'est le classement en lui meme : j'ai commencé un truc qui est particulierement long et qui doit pas etre tres optimisé : pour chaque nb de pts je regarde le nb de pts de chaque equipe et si egalité je stocke ds un tableua. pr chazque nb de pts a egalité, je regarde le nb de pts des matches directs, je stocke etc etc pr chaque critere. ca me parait bien tordu.

n°919386
skeye
Posté le 10-12-2004 à 09:50:30  profilanswer
 

et tu peux pas tous simplement ordonner tes enregistrements dans la requête? :??:


---------------
Can't buy what I want because it's free -
n°919436
karou
Posté le 10-12-2004 à 10:56:42  profilanswer
 

ben non parceque je recupere les resultats des matches. Or il faut que je retravaille ca derriere pour obtenir le nb de pts en fonction des matches gagnés / perdus etc...

n°919437
ratibus
Posté le 10-12-2004 à 10:57:16  profilanswer
 
n°919438
skeye
Posté le 10-12-2004 à 10:57:59  profilanswer
 

...question bête : pourquoi tu ne stockes pas le nombre de points? :??:
Ca prendrait très peu de place en plus, et ça simplifierait énormément le boulot à faire ensuite...!


---------------
Can't buy what I want because it's free -
n°919458
karou
Posté le 10-12-2004 à 11:17:17  profilanswer
 

Ben ca m'avancerait pas des masses de le stocker car le 2eme critère de tri c'est le nb de pts issus des matchs impliquant  directement les equipes a égalité. je suis obligée de le calculer ca. Je vais deja essayer de simplifier ca avec usort(). merci!

n°919460
skeye
Posté le 10-12-2004 à 11:18:41  profilanswer
 

Il est plus facile de trier après coup un tableau en ne comparant que les équipes à égalité de points qu'en se tapant un classement intégral à la main!


---------------
Can't buy what I want because it's free -
n°919479
Xav_
The only one...
Posté le 10-12-2004 à 11:44:14  profilanswer
 

skeye a écrit :

Il est plus facile de trier après coup un tableau en ne comparant que les équipes à égalité de points qu'en se tapant un classement intégral à la main!


 
+1
personnellement, j'essai que mes requete me formalise un max les infos de manière à minimiser le traitement PHP, mais il ya encore beaucoup d'apprenti webmaster que se content d'un "select *" piqué sur un tutoriel et se tape une page complète de traitement derriere...
 
Le codage PHP est une chose (relativement aisée d'où la communauté énorme et grandissante de webmaster), la bonne utilisation des BDD en est une autre (nettement plus complexe pour faire qque chose de propre et optimisé)...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
mood
Publicité
Posté le 10-12-2004 à 11:44:14  profilanswer
 

n°919485
karou
Posté le 10-12-2004 à 11:49:30  profilanswer
 

Oui mais je suis obligée de me contenter d'un select,  ma base ne contient que les resultats des matches (une equipe jouant plusieurs matches) , je vais pas m'amuser a calculer le nb de pts pr le stocker ensuite et refaire une requete en mettant des ordres de tri ensuite...

n°919486
Xav_
The only one...
Posté le 10-12-2004 à 11:50:53  profilanswer
 

peut etre que ta structure de tables n'est pas optimisée alors...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°919489
skeye
Posté le 10-12-2004 à 11:52:13  profilanswer
 

Euh oui...tu dois bien avoir une table des équipes quelquepart dans ta base, non?


---------------
Can't buy what I want because it's free -
n°919498
Sebastien
Posté le 10-12-2004 à 11:56:14  profilanswer
 

et meme qu'avec les matchs je suis sur qu'il y a moyen de recuperer les points
un truc du genre
select 3*sum(victoire)+sum(nul)
from table_match victoire, table_match nul
where victoire.score_1 > victoire.score_2
and nul.score_1 = nul_score_2
 
un truc du genre quoi

n°919502
skeye
Posté le 10-12-2004 à 11:58:20  profilanswer
 

Sebastien a écrit :

et meme qu'avec les matchs je suis sur qu'il y a moyen de recuperer les points
un truc du genre
select 3*sum(victoire)+sum(nul)
from table_match victoire, table_match nul
where victoire.score_1 > victoire.score_2
and nul.score_1 = nul_score_2
 
un truc du genre quoi


Oui, mais c'est très mauvais.
Tu refais le même calcul à chaque fois que tu accèdes à la page, alors qu'il suffit de le faire une fois (et encore, ce sera de l'incrémental à chaque ajout d'un match) et de le stocker...


---------------
Can't buy what I want because it's free -
n°919507
Sebastien
Posté le 10-12-2004 à 11:59:34  profilanswer
 

Oui mais la je parle dans l'idée qu'il ne p(v)eut plus modifier ses bases.

n°919509
skeye
Posté le 10-12-2004 à 12:00:21  profilanswer
 

Sebastien a écrit :

Oui mais la je parle dans l'idée qu'il ne p(v)eut plus modifier ses bases.


Oui, mais c'est très mal quand même. Autant revoir la base de données pendant qu'il en est encore temps:


---------------
Can't buy what I want because it's free -
n°919511
Sebastien
Posté le 10-12-2004 à 12:02:00  profilanswer
 

Karou si tu peux le faire en requete alors n'hesite pas une seconde.

n°919512
Sebastien
Posté le 10-12-2004 à 12:02:34  profilanswer
 

Tiens y a un post qui a disparu ^^

n°919513
skeye
Posté le 10-12-2004 à 12:03:12  profilanswer
 

karou a écrit :

ben non. je vais essayer de voir ca. mais ca fera plus de requetes, ca va ralentir plus que de le calculer non?


Ben non. Tu feras les calculs des points 1 seule fois par match, donc tu gagneras énormément sur ta requête (ou ton php, je sais pas où tu fais le calcul).
Faire plusieurs requête de lecture simples est pas très couteux par rapport à une qui fait des calculs complexes avec lecture de nombreux enregistrements...


---------------
Can't buy what I want because it's free -
n°919514
skeye
Posté le 10-12-2004 à 12:03:35  profilanswer
 

Sebastien a écrit :

Tiens y a un post qui a disparu ^^


trop tard, je l'ai eu! [:ddr555]


---------------
Can't buy what I want because it's free -
n°919515
karou
Posté le 10-12-2004 à 12:05:35  profilanswer
 

En meme temps si je fais une table ou je stocke les equipes avec les nb de points, ca devient compliqué car il y a plusieurs tours et que pour les equipes qui passent au tour principal on conserve le nb de pts qui on ete acquis avec les equipes qui sont passées aussi!!!  :pt1cable:  oui je sais j'abuse! bon je vais essayer de revoir ca en creant des tables. merci pour les reponses!!! :)

n°919517
Sebastien
Posté le 10-12-2004 à 12:06:07  profilanswer
 

N'empeche que je me rappelle mes profs qui me disaient tjs :
 
'Il ne faut rien mettre dans les tables qui soient des données calculées'
 
je me demande qui leur avait dit de dire d'aussi belles choses :)

n°919518
karou
Posté le 10-12-2004 à 12:06:13  profilanswer
 

ah mince trop rapide pour moi!!!

n°919521
skeye
Posté le 10-12-2004 à 12:07:17  profilanswer
 

karou a écrit :

En meme temps si je fais une table ou je stocke les equipes avec les nb de points, ca devient compliqué car il y a plusieurs tours et que pour les equipes qui passent au tour principal on conserve le nb de pts qui on ete acquis avec les equipes qui sont passées aussi!!!:pt1cable:  


 
Je suis pas sûr d'avoir compris, mais avec un script qui met à jour les tables à la fin du 1er tour ça me parait pas très complexe... :??:
 

karou a écrit :

 oui je sais j'abuse! bon je vais essayer de revoir ca en creant des tables. merci pour les reponses!!! :)


:jap:


---------------
Can't buy what I want because it's free -
n°919525
skeye
Posté le 10-12-2004 à 12:09:25  profilanswer
 

Sebastien a écrit :

N'empeche que je me rappelle mes profs qui me disaient tjs :
 
'Il ne faut rien mettre dans les tables qui soient des données calculées'
 
je me demande qui leur avait dit de dire d'aussi belles choses :)


C'est de la jolie théorie, mais tout dépend du calcul en question...;)
Si c'est un montant TTC par exemple, on garde le HT et la TVA et basta, c'est simple.
Là il a un calcul beaucoup plus complexe, et ne pas stocker "pour le principe" le résultat faire perdre énormément d'efficacité par rapport au coût que ça a...:o


---------------
Can't buy what I want because it's free -
n°919705
Xav_
The only one...
Posté le 10-12-2004 à 14:55:59  profilanswer
 

Je suis également en cours de développement d'un site pour gérer le classement des memebres de mon asso au jeu MotoGP2
Je suis justement en train de travailler sur la page du classment complet (avec nb de point par circuit, plus classement en fonction du nombre de point, de n° de 1ere places...etc...)
 
J'en suis arrivé très vite à la conclusion de stocker les points dans une table récapitulative.
 
La requete de calcul et de MAJ de cette table sera peut etre couteuse en ressource, mais ne se fait que lors de la saisie/modification d'un chrono (opération uniquement faisable par un admin)
 
Ensuite, à chaque visiteur qui voit la page, ya une requete de sélection mlultiple (nom des pilotes dans une table, noms des circuit dans une autre, les point dans une 3eme), mais juste des requete de sélection --> j'ai pas fini je m'attend à un résultat assez satisfaisant ;)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  classement

 

Sujets relatifs
requete pour faire un classement[Dreamweaver] classement des dossiers par date et non par nom!
Classement alphabétique de deux tableauxPb de requetes php/mysql et classement
PHP/MySQL [noob] Classement détaillé[MySQL] Classement numérique
classement --> comment fairealgorithme de classement alphabétique
[MySQL] une requête avec "double classement": possible??[mysql] comment faire ce classement ?
Plus de sujets relatifs à : classement


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)