| Voir le sujet précédent :: Voir le sujet suivant |
| Auteur |
Message |
seb Invité
|
Posté le: Lun 24 Jan 2005, 11:04 Sujet du message: réaction |
|
|
Ce script est trés interressant mais j'ai quelques remarques
Je pense que la partie affichage du classement est à revoir car elle est gourmande en resource et pour pas grand chose.
Je m'explique on reconstruit la table pour afficher le classement à chaque fois qu'on le consulte ce qui prends beaucoups de requêtes (20 environ) et de temps côtè serveur pour l'execution du script plus d'une seconde c'est énorme.
alors qu'il suffirait de générer le classement comme on génére les graphs
à partir de l'admin.
le seul inconvéniant c'est qu'on ne pourra plus afficher le classement de la journée 1 à xx mais est ce que cette option est bien utile?
une autre petite remarque, une requête inutile dans le fichier fonctions.php
dans la fonction db_clmt
au niveau des résultats à domicile il me semble (j'ai pas le fichier sous les yeux)
cette requête est exécutée mais on utilise pas le résultat
de même pour cette fonction on passe 6 ou 7 paramétres alors qu'on en utilise 3 ????
j'ai pas tout regardé encore
Une prochaine version compatible xhtml ça serait pas mal
avec une petite réécriture des fonctions d'affichage en évitant les "echo" à toutes les lignes, en stockant ça dans une variable c'est beaucoup mieux et en fin de script afficher cette variable.
Et pensez à l'optimisation
Sinon bravo trés bon script |
|
| Revenir en haut |
|
 |
Alexis Site Admin
Inscrit le: 08 Avr 2004 Messages: 1113 Localisation: Aix-En-Provence et Firminy (42)
|
Posté le: Lun 24 Jan 2005, 17:23 Sujet du message: |
|
|
Salut,
Très juste, au niveau des classements le script utilise beaucoup de ressources. La fonction db_clmnt sert en fait à générer la table, puis la fonction clmnt affiche le classement.
Lors de la dernière version je n'ai pas vraiment trouvé de solution à ce problème de génération de la table des classements (que je trouvais long déjà...). Je n'ai pas découvert de solution facile pour générer tous les classements : général, domicile, extérieur et en fonctions des journées.
La solution qui me paraîtrait la plus simple à réaliser sans trop chambouler le script serait la suivante. Générer le classement général côté admin (c'est le type de classement le plus consulté par les utilisateurs) et réserver une table pour les autres classements (table équivalente à clmnt actuellement) consultés plus occasionnellement. Ainsi le script utilisera moins de ressources pour le classement général. Il utilisera autant de ressources pour les autres types de classements mais ceux-ci étant utilisés moins fréquemment cela soulagera un peu le serveur.
Merci beaucoup de ces remarques . Je suis conscient que le script n'est pas super bien écrit et que des optimisations sont encore possiles. En tout cas c'est en me signalant les défauts et les améliorations du script que PhpLeague évoluera !
J'essayerais de modifier tout ça quand j'aurais le temps, vu le boulot à côté que j'ai je ne vous garanti rien !
Si vous avez d'autres suggestions n'hésitez pas !!  |
|
| Revenir en haut |
|
 |
seb Invité
|
Posté le: Lun 24 Jan 2005, 20:41 Sujet du message: |
|
|
Voila je viens de finir la modification des fonctions pour l'affichage du classement avec compte du nombre de requêtes (utilisation d'une class identique à celle de mon site)
en fait c'est chaud coté ressources
73 requêtes pour l'affichage du classement pour chaque classement
sans compter l'affichage des journées qui se trouve sur la même page.
le plus simple à mon avis c'est de créer 6 tables par championnat (une par style de classement) depuis l'admin car le nombre de tables ne pose aucun problème donc pas de limite de ce coté là
ce qui permettra d'afficher les différents classements avec 2 ou 3 requêtes (donc avec un temps d'execution du script normal) ce qui me parait beaucoup plus raisonnable en plus les modifications au niveau du script ne sont pas trés importantes.
bien sûr on oublie les options de la journée 1 à xx car impossible de les gérer avec un nombre de requêtes raisonnable.
voila mon avis sur ce sujet si ça vous interresse je peux vous tenir au courant
et de plus je pense qu'il faut regarder ce problème de prés 73 requêtes pour une page c'est pas du tout raisonnable  |
|
| Revenir en haut |
|
 |
seb Invité
|
Posté le: Lun 24 Jan 2005, 22:12 Sujet du message: |
|
|
en faite rien de compliqué
les informations des différents classements existent déjà dans la table phpl_clmnt donc pas de nouvelle table à créer
dans le fichier fonctions.php dans la fonction clmnt
une petite erreur de codage qui ajoute 20 requêtes inutiles
rechercher et supprimer
| Code: | $query2="SELECT phpl_equipes.id, phpl_clubs.nom FROM phpl_equipes, phpl_clubs
WHERE phpl_clubs.nom='$row[0]'
AND phpl_equipes.id_champ='$champ'
AND phpl_clubs.id=phpl_equipes.id_club";
$result2=mysql_query($query2) or die(mysql_error());;
while($id_equipe=mysql_fetch_array($result2))
{
$id=$id_equipe['id'];
}
@mysql_free_result($result2); |
cette requête multipliée par le nombre d'équipe récupére l'id de l'équipe
est complétement inutile car on dispose déjà de l'id des équipes (disponnible dans la table 'phpl_clmnt' champ 'ID_EQUIPE' )
aprés modifier cette ligne
| Code: | | else {echo "<a href=\"detaileq.php?champ=$champ&id_equipe=$id\">$row[$x]</a></b>";} |
par
| Code: | | else {echo "<a href=\"detaileq.php?champ=$champ&id_equipe=".$row['ID_EQUIPE']."\">$row[$x]</a></b>";} |
petite remarque au niveau du script utilisez plutot le nom des champs plutot que le numéro du champ bien plus compréhensible à la lecture du script
et modifier cette ligne
| Code: | | if ($type==GENERAL){echo "<a href=\"#\" onClick=\"window.open('graph.php?equipe=$id','Stats','toolbar=0,location=0,directories=0,status=0,scrollbars=0,resizable=0 ,copyhistory=0,menuBar=0,width=560,height=320');\"><img src=\"graph.gif\" border=\"0\" alt=\"$leg\"></img></a> ";} |
par
| Code: | | if ($type==GENERAL){echo "<a href=\"#\" onClick=\"window.open('graph.php?equipe=".$row['ID_EQUIPE']."','Stats','toolbar=0,location=0,directories=0,status=0,scrollbars=0,resizable=0 ,copyhistory=0,menuBar=0, width=560,height=320');\"><img src=\"graph.gif\" border=\"0\" alt=\"$leg\"></img></a> ";} |
pour gagner encore des requêtes maintenant il faut s'attaquer au fichier classement.php
bien sûr comme je vous le disez dans mon message précédent on supprime l'option de la journée 1 à xx donc on plus besoin des variables debut et fin
donc ce n'ai plus la peine de générer le classement à chaque fois
la génération du classement se fera à partir de l'admin
pour cela il suffit juste de rajouter la fonction
@db_clmnt($legende, GENERAL, $accession, $barrage, $relegation, $champ, $debut, $fin);
avec $debut premiére journée et $fin derniére journée
autre petite remarque cette fonction peut être réduit à
db_clmnt($champ, $debut, $fin); car les autres variables ne sont pas utilisées
(si vous faites la modif n'oubliez pas de la faire également dans le fichier fonctions.php)
dans le fichier de génération des graphs comme ça en même temps que la génération des graphs on remplie la table phpl_clmnt
(j'ai pas vérifié si elle n'était pas déjà lancée cette fonction)
aprés il n'y a plus qu' a supprimer
toutes ces fonctions du fichier classement.php
| Code: | | @db_clmnt($legende, DOMICILE, $accession, $barrage, $relegation, $champ, $debut, $fin ); |
voila je suis passé avec tout cela de 73 requête à 4 requêtes
temps d'execution php de la page 0.0322 s (avec tout le contour de ma page) |
|
| Revenir en haut |
|
 |
seb Invité
|
Posté le: Lun 24 Jan 2005, 22:33 Sujet du message: |
|
|
j'étais en train de relire mon message
et j'ai vu un petit truc
| Code: | | if ($type==GENERAL){echo "<a href=\"#\" onClick=\"window.open('graph.php?equipe=".$row['ID_EQUIPE']."','Stats','toolbar=0,location=0,directories=0,status=0,scrollbars=0,resizable=0 ,copyhistory=0,menuBar=0,width=560,height=320');\"><img src=\"graph.gif\" border=\"0\" alt=\"$leg\"></img></a> ";} |
petite astuce lorsqu'on ouvre un popup avec une ligne comme celle ci
| Code: | | onClick=\"window.open('graph.php?equipe=".$row['ID_EQUIPE']."','Stats','toolbar=0,location=0,directories=0,status=0,scrollbars=0,resizable=0 ,copyhistory=0,menuBar=0,width=560,height=320');\" |
ajoutez return false; à la fin pour éviter de recharger la page de dérriére
ce qui donne
| Code: | | onClick=\"window.open('graph.php?equipe=".$row['ID_EQUIPE']."','Stats','toolbar=0,location=0,directories=0,status=0,scrollbars=0,resizable=0 ,copyhistory=0,menuBar=0,width=560,height=320');return false;\" |
dans le cas présent avec href="#" on retourne en haut de la page |
|
| Revenir en haut |
|
 |
Alexis Site Admin
Inscrit le: 08 Avr 2004 Messages: 1113 Localisation: Aix-En-Provence et Firminy (42)
|
Posté le: Sam 12 Fév 2005, 14:28 Sujet du message: |
|
|
Salut
Je n'avais pas vu tes deux derniers messages
Merci pour ces petites modifs que tu apportes. J'ai enlevé les 20 requêtes superflues et modifié le lien vers les graphs. Cependant pour les classements je vais réfléchir à un moyen pour conserver la possibilité de faire le classement de la journée 1 à x...
Si tu à remarqué d'autres optimisations dis moi ! Merci encore !!  |
|
| Revenir en haut |
|
 |
ghost
Inscrit le: 23 Juil 2004 Messages: 335
|
Posté le: Sam 19 Fév 2005, 17:47 Sujet du message: |
|
|
ca serait possible de mettre tourez tes modif avec les fichier ce qui permettrait de pas rechercher et de remplacer juste le fichier.
merci _________________ http://www.fcbayern-fr.com |
|
| Revenir en haut |
|
 |
seb Invité
|
Posté le: Lun 07 Mar 2005, 16:51 Sujet du message: |
|
|
Désolé je n'ai pas les fichiers modifiés vu que j'ai reécrit toutes les fonctions pour les insérer et les adapter au mieux à mon site et pour que ce soit compatible xhtml strict et consommer le moins de requêtes possibles donc je ne posséde pas de fichier modifié par rapport à l'original.
Et désolé pour cette réponse tardive. |
|
| Revenir en haut |
|
 |
|
 Inscriptions bloquées: 4179
|