[Prono-Foot™] - Améliorations / Suggestions

Venez discuter des résultats et de l'actualité sportive
Pensez à respecter l'adversaire

Faut il mettre les côtes des matchs ?

Oui
11
65%
Non
4
24%
Ne se prononce pas
2
12%
 
Nombre total de votes : 17

Avatar de l’utilisateur
Aurelienazerty
Webmaster / Président
Messages : 19373
Inscription : septembre 27, 2002, 9:41 pm

ou les saisir

#250

Message par Aurelienazerty » juin 26, 2007, 11:50 am

Dernier message de la page précédente :

De l'autre côté faut toutes les saisir.
Là ça t'économise 9 clics sur le boutons ajouter un match et 9 chargement de page.
Aurelienazerty

Image

Avatar de l’utilisateur
Aurelienazerty
Webmaster / Président
Messages : 19373
Inscription : septembre 27, 2002, 9:41 pm

fait

#251

Message par Aurelienazerty » juillet 4, 2007, 8:02 pm

J'ai fait ma partie, Ludo, il te reste toute la fin de saison à saisir (c'est la moins longue t'as une grille de moins).
Y a encore le trophée des champion qui arrive "bientôt" c'est quoi les dates ?
Aurelienazerty

Image

Avatar de l’utilisateur
Aurelienazerty
Webmaster / Président
Messages : 19373
Inscription : septembre 27, 2002, 9:41 pm

C'est très moche

#252

Message par Aurelienazerty » juillet 4, 2007, 10:02 pm

Christophe a écrit :Serait-il possible d'avoir l'ensemble des grilles de toutes une compétition sur une même page, afin de pouvoir effectuer un prono-flash sur la saison entière?
C'est fait, choisir toutes les grilles à venir dans la 3° liste
Aurelienazerty a écrit :ça sent le pronoflash sur toute la saison ça.
De même, il serait bien d'avoir un bouton pour passer à la grille suivante (c'est relou de revenir sur la page de pronostique, choisir dans la liste etc.)
C'est fait, en fait une fois la grille soumise, sur la page de confirmation, vous avez il lien d'accès direct à la prochaine grille non pronostiquée.
Aurelienazerty

Image

Avatar de l’utilisateur
Nicolazerty
l'élu
Messages : 4004
Inscription : septembre 27, 2002, 2:59 pm

#253

Message par Nicolazerty » juillet 8, 2007, 4:37 pm

BUG ALERT!!!!!
il y a des soucis dans le pronoflash, il ne met pas un résultat pour tous les matchs...
Résistance !

Avatar de l’utilisateur
Aurelienazerty
Webmaster / Président
Messages : 19373
Inscription : septembre 27, 2002, 9:41 pm

oki

#254

Message par Aurelienazerty » juillet 8, 2007, 6:50 pm

C'est dur à le refaire ce bug.
Aurelienazerty

Image

Avatar de l’utilisateur
Aurelienazerty
Webmaster / Président
Messages : 19373
Inscription : septembre 27, 2002, 9:41 pm

Les groupes

#255

Message par Aurelienazerty » juillet 18, 2007, 4:24 pm

Une idée qu'on m'a suggéré au boulot consisterait à permet un filtre des classement par groupes. Le but étant de faciliter les tournois interne entre collègues. qu'en dites vous ?
Aurelienazerty

Image

Avatar de l’utilisateur
Nicolazerty
l'élu
Messages : 4004
Inscription : septembre 27, 2002, 2:59 pm

#256

Message par Nicolazerty » juillet 18, 2007, 4:56 pm

bonne idée j'y avais pensé il fut un temps
Résistance !

Avatar de l’utilisateur
Aurelienazerty
Webmaster / Président
Messages : 19373
Inscription : septembre 27, 2002, 9:41 pm

done

#257

Message par Aurelienazerty » juillet 19, 2007, 10:37 am

Nicolazerty a écrit :BUG ALERT!!!!!
il y a des soucis dans le pronoflash, il ne met pas un résultat pour tous les matchs...
C'est corrigé
Aurelienazerty

Image

Avatar de l’utilisateur
Aurelienazerty
Webmaster / Président
Messages : 19373
Inscription : septembre 27, 2002, 9:41 pm

euro

#258

Message par Aurelienazerty » juillet 27, 2007, 10:09 am

Est ce que quelqu'un peut me trouver le trophée de l'euro:

Image

Sur fond blanc

Merci
Aurelienazerty

Image

Avatar de l’utilisateur
Nicolazerty
l'élu
Messages : 4004
Inscription : septembre 27, 2002, 2:59 pm

#259

Message par Nicolazerty » juillet 27, 2007, 10:26 am

photoshop...
Résistance !

Avatar de l’utilisateur
Aurelienazerty
Webmaster / Président
Messages : 19373
Inscription : septembre 27, 2002, 9:41 pm

nop

#260

Message par Aurelienazerty » juillet 27, 2007, 10:27 am

Je l'ai pas sur place, et y a des reflets verts merdique sur le bas de la coupe, donc si il y a une autre image qui demande moins de traitement, c'est mieux.
Aurelienazerty

Image

Avatar de l’utilisateur
Nicolazerty
l'élu
Messages : 4004
Inscription : septembre 27, 2002, 2:59 pm

#261

Message par Nicolazerty » juillet 27, 2007, 11:45 am

Image
Résistance !

Avatar de l’utilisateur
Aurelienazerty
Webmaster / Président
Messages : 19373
Inscription : septembre 27, 2002, 9:41 pm

Re: Les groupes

#262

Message par Aurelienazerty » juillet 27, 2007, 12:15 pm

Merci nico !
Aurelienazerty a écrit :Une idée qu'on m'a suggéré au boulot consisterait à permet un filtre des classement par groupes. Le but étant de faciliter les tournois interne entre collègues. qu'en dites vous ?
C'est fait. Normalement... ça fonctionne.
C'est opérationnel sur la page d'index de pronofoot mais aussi sur le tableau récap
Aurelienazerty

Image

Avatar de l’utilisateur
Administr@Tueur
Obiwan Kenobi
Messages : 1025
Inscription : août 7, 2004, 12:20 pm

#263

Message par Administr@Tueur » août 1, 2007, 10:24 am

Après mise à jour des heures pour les premières journées de L1, il se trouve que la 3ème journée est passée entre la 9ème et la 10ème dans la liste.

Tu dois faire le tri sur la dernière affiche de la journée... fais le plutot sur la première affiche... non ?
Administr@Tueur

Avatar de l’utilisateur
Aurelienazerty
Webmaster / Président
Messages : 19373
Inscription : septembre 27, 2002, 9:41 pm

date

#264

Message par Aurelienazerty » août 1, 2007, 10:31 am

Si mes souvenirs sont bons, il doit avoir une histoire de date, et comme il a des matchs reportés tout ça, il doit avoir une couille dans le potage.
Ouai, mes souvenirs sont bons, voilà mon select:

Code : Tout sélectionner

SELECT foot_grille.id_grille, foot_grille.nom 
from foot_grille 
inner join foot_match on foot_grille.id_grille = foot_match.id_grille 
where id_compet = ".$id_compet." 
group by foot_grille.id_grille 
ORDER by foot_match.date, foot_grille.nom 
J'ai pas la tête à faire du SQL là tout de suite, donc si un codeur dans l'âme veut le faire, pas de soucis, le schéma est
Aurelienazerty

Image

Avatar de l’utilisateur
Davidazerty
l'élu
Messages : 2371
Inscription : octobre 12, 2002, 3:30 pm

#265

Message par Davidazerty » août 1, 2007, 6:41 pm

C'est une erreur sur le GROUP BY, tu as plusieurs match pour chaque grille, une fois groupé sur la grille il n'a plus qu'un seul match (surement la dernière entrée) pour triée sur la date.
Tu peux essayer d'enlever les GROUP BY et le trie sur le nom au passage (a moins qu'ils puissent y avoir deux grilles qui commence le même jour), et mettre un DISTINCT après le SELECT pour enlever les doublons.

Code : Tout sélectionner

SELECT DISTINCT foot_grille.id_grille, foot_grille.nom
FROM foot_grille
INNER JOIN foot_match ON foot_grille.id_grille = foot_match.id_grille
WHERE id_compet = ".$id_compet."
ORDER BY foot_match.date

Avatar de l’utilisateur
Aurelienazerty
Webmaster / Président
Messages : 19373
Inscription : septembre 27, 2002, 9:41 pm

dank

#266

Message par Aurelienazerty » août 1, 2007, 6:55 pm

Merci, je teserais ça lorsque j'aurais le temps.
Aurelienazerty

Image

Avatar de l’utilisateur
Aurelienazerty
Webmaster / Président
Messages : 19373
Inscription : septembre 27, 2002, 9:41 pm

marche po

#267

Message par Aurelienazerty » août 2, 2007, 11:55 am

ça ne marche pas. La 3° journée se retrouve toujours après la 9°.

Edit: cette requete semble marcher par contre:

Code : Tout sélectionner

SELECT distinct foot_grille.id_grille, foot_grille.nom
FROM foot_grille
INNER JOIN foot_match ON foot_grille.id_grille = foot_match.id_grille and date = (SELECT min(m2.date) from foot_match m2 where foot_grille.id_grille = m2.id_grille)
WHERE id_compet = ".$id_compet." 
ORDER BY date
Aurelienazerty

Image

Avatar de l’utilisateur
Nicolazerty
l'élu
Messages : 4004
Inscription : septembre 27, 2002, 2:59 pm

#268

Message par Nicolazerty » août 2, 2007, 2:15 pm

oui à part un select imbriqué je vois pas la solution... mais plutot qu'un min(date) je ferais plutot un max du count en regroupant sur la date de la journée, comme ca en cas de match avancé pour une journée pas de soucis...
Résistance !

Avatar de l’utilisateur
Aurelienazerty
Webmaster / Président
Messages : 19373
Inscription : septembre 27, 2002, 9:41 pm

SQL

#269

Message par Aurelienazerty » août 2, 2007, 3:04 pm

ça donne quoi en SQL?
Aurelienazerty

Image

Avatar de l’utilisateur
Davidazerty
l'élu
Messages : 2371
Inscription : octobre 12, 2002, 3:30 pm

#270

Message par Davidazerty » août 2, 2007, 6:31 pm

La requete imbriqué j'y avais pensé mais niveau performance c'est pas terrible.
Pour n'avoir qu'une simple jointure on peut remettre le group sur la grille et trié sur le nom de la journée, puisque de toute facon c'est le bute recherché.

Avatar de l’utilisateur
Aurelienazerty
Webmaster / Président
Messages : 19373
Inscription : septembre 27, 2002, 9:41 pm

nop

#271

Message par Aurelienazerty » août 2, 2007, 7:04 pm

Non avant je faisais un simple tris sur la nom de la journée, et c'était pas top dans le sens où falais mettre des 01° journée pour que ça classe bien, et il me semble qu'il n'y a pas pas toujours des chiffres. Bref, là le résultats est bon, et niveau perf, vu que la requête n'est exécuté qu'une seule fois, ce n'est pas dramatique, quand tu vois le problème lié à ça et que tu vois la requête de calcul de classement:

Code : Tout sélectionner

function tabPronostiqueur($grilleesclue=-1, $grilleVoulue = -1, $compet = -1, $id_saison = -1, $id_type_compet = -1, $id_groupe = -1) {
	$saison = new foot_saison($id_saison);
	$resultatfonction = array();
	
	//V2 pour optimisation
	$query = "FROM foot_pronostique
						inner join foot_match on foot_match.id_match = foot_pronostique.id_match
						inner join foot_grille on foot_grille.id_grille = foot_match.id_grille
						inner join foot_competition on foot_competition.id_compet = foot_grille.id_compet 
						WHERE foot_match.vainqueur != -1 ";
	if ($grilleesclue != -1) {
		$query .= " AND foot_grille.id_grille != $grilleesclue ";
	}
	if ($grilleVoulue != -1) {
		$query .= " AND foot_grille.id_grille = $grilleVoulue ";
	}
	if ($compet != - 1) {
		$query .= " AND foot_competition.id_compet = $compet ";
	}
	if ($id_saison != -1) {
		$query .= " AND  foot_competition.id_saison = ".$id_saison;
	}
	if ($id_type_compet != -1) {
		$query .= " AND  foot_competition.type_compet = ".$id_type_compet;
	}
	if ($id_groupe != -1) {
		$query .= " AND  id_user in 
									(
										SELECT user_id
										FROM phpbb_user_group
										where group_id = ".$id_groupe." 
									)
		";
	}
	$query_fin= " GROUP BY id_user ";
	
	//echo "SELECT count(foot_match.id_match) as nbProno , id_user ".$query.$query_fin."<br>";
	$tab = $GLOBALS['bdd']->requete("SELECT count(foot_match.id_match) as nbProno , id_user ".$query.$query_fin);
	foreach ($tab as $key => $resultat) {
		$idusr = $resultat["id_user"];
		$nbPronostiques = $resultat["nbProno"];
		
		$resultatfonction[$idusr] = array();
		$resultatfonction[$idusr]["idusr"] = $idusr;
		$resultatfonction[$idusr]["point"] = 0;
		$resultatfonction[$idusr]["pourcent"] = 0;
		$resultatfonction[$idusr]["pourcentage"] = 0;
		$resultatfonction[$idusr]["nbpronos"] = $nbPronostiques;
		
	}
	
	$tab = $GLOBALS['bdd']->requete("SELECT count(foot_match.id_match) as nbPoints , id_user ".$query." AND foot_match.vainqueur = foot_pronostique.vainqueur ".$query_fin);
	foreach ($tab as $key => $resultat) {
		$idusr = $resultat["id_user"];
		$nbpoints = $resultat["nbPoints"];
		$nbPronostiques = $resultatfonction[$idusr]["nbpronos"];
		
		//Blague
		/*if ($idusr == 4)
			$nbpoints = $nbpoints - 50000;*/
		/*if ($idusr == 5)
			$nbpoints = $nbpoints + 20;
		if ($idusr == 24)
			$nbpoints = $nbpoints - 50000;*/
		
		if ($nbPronostiques > 0 ) {
			$pourcentage =  number_format(round($nbpoints/$nbPronostiques*100, 2), 2, ',', ' ');
			$pourcent = $nbpoints/$nbPronostiques*100;
		} else {
			$pourcent = 0;
			$pourcentage = 0;
		}
		//MAJ des scores
		$resultatfonction[$idusr]["point"] = $nbpoints;
		$resultatfonction[$idusr]["pourcent"] = $pourcent;
		$resultatfonction[$idusr]["pourcentage"] = $pourcentage;
		
	}
	//Fin V2
	return $resultatfonction;
}
et

Code : Tout sélectionner

function tableauEvolution($idcompet = -1, $idcompetType = -1, $idsaison = -1) {
	/* Etape 1 récupérer les grilles classé par date croissantes
		 Attention, une grille n'a pas tous ses matchs en même temps
		 Il faut donc les classer en prennant le match le plus tot
	*/
	
	//Les participants
	$query = "SELECT distinct id_user  
						FROM foot_pronostique 
						inner join foot_match on foot_match.id_match = foot_pronostique.id_match 
						inner join foot_grille on foot_match.id_grille = foot_grille.id_grille 
						inner join foot_competition on foot_competition.id_compet = foot_grille.id_compet 
						where foot_match.vainqueur != -1 ";
	if ($idcompet != -1) {
		$query .= " AND foot_competition.id_compet = ".$idcompet;
	}
	if ($idcompetType != -1) {
		$query .= " AND foot_competition.type_compet = ".$idcompetType;
	}
	if ($idsaison != -1) {
		$query .= " AND foot_competition.id_saison = ".$idsaison;
	}
	
	$tabParticipants = $GLOBALS['bdd']->requete($query);
	
	$query = "SELECT distinct foot_grille.id_grille 
						FROM foot_match 
						inner join foot_grille on foot_match.id_grille = foot_grille.id_grille 
						inner join foot_competition on foot_competition.id_compet = foot_grille.id_compet 
						where vainqueur != -1 ";
	if ($idcompet != -1) {
		$query .= " AND foot_competition.id_compet = ".$idcompet;
	}
	if ($idcompetType != -1) {
		$query .= " AND foot_competition.type_compet = ".$idcompetType;
	}
	if ($idsaison != -1) {
		$query .= " AND foot_competition.id_saison = ".$idsaison;
	}				
	$query .= "	order by date";
	$tab = $GLOBALS['bdd']->requete($query);
	//die($query);
	
	$resultatFonction = array();
	$i = 0;
	foreach ($tab as $key => $resultat_grille) {
		$resultatFonction[$i] = array();
		//On a besoin du nombre de match
		$resultatFonction[$i]["nbmatchs"] = 0;
		$query = "SELECT count(id_match) as nbmatchs
							FROM `foot_match`
							WHERE vainqueur != -1 
							AND `id_grille` =".$resultat_grille["id_grille"];
		$tab2 = $GLOBALS['bdd']->requete($query);
		//Recherche de la précédante valeur
  	if ($i != 0)
  		$j = $i-1;
  	else
  		$j = 0;
  	//echo "$i: ".$tab2[0]["nbmatchs"]."<br>";
		$resultatFonction[$i]["nbmatchs"] = $tab2[0]["nbmatchs"] + $resultatFonction[$j]["nbmatchs"];
		/* Etape 2 contruire le tableau résultat
			 Attention certains pronostiqueurs n'existaient pas avant 
			 ou peuvent ne pas avoir pronostiqué une grille
			 
			 => parcourir le tableau de pronostiqueur mettre des 0, puis utiliser les valeur d'avant 
			    
			    /!\ penser qu'il faut recalculer les pourcentages
		*/
		
		//Initialisation du tableau
		reset($tabParticipants);
		foreach ($tabParticipants as $key2 => $resultat2) {
			$iduser = $resultat2["id_user"];
			$resultatFonction[$i][$iduser] = array();
			$resultatFonction[$i][$iduser]["point"] = 0;
			$resultatFonction[$i][$iduser]["pourcentage"] = 0;
			$resultatFonction[$i][$iduser]["pourcent"] = 0;
			$resultatFonction[$i][$iduser]["nbpronos"] = 0;
			$resultatFonction[$i][$iduser]["idusr"] = $iduser;
			
			//Recherche de la précédante valeur
    	if ($i != 0)
    		$j = $i-1;
    	else
    		$j = 0;
    	//On met la dernière valeur, elle sera mise à jour par la suite s'il le gars a pronostiqué
			$old_nbpoints = $resultatFonction[$j][$iduser]["point"];
			$old_nbpronos = $resultatFonction[$j][$iduser]["nbpronos"];
			$old_pourcentage = $resultatFonction[$j][$iduser]["pourcentage"];
			$old_pourcent = $resultatFonction[$j][$iduser]["pourcent"];
			$resultatFonction[$i][$iduser]["point"] = $old_nbpoints;
			$resultatFonction[$i][$iduser]["nbpronos"] = $old_nbpronos;
			$resultatFonction[$i][$iduser]["pourcentage"] = $old_pourcentage;
			$resultatFonction[$i][$iduser]["pourcent"] = $old_pourcent;
			//if ($iduser == 4 or $iduser == 5) print $iduser.": Anciens point en $j: ".$old_nbpoints."<br>";
		}
		
		//Mise à jour des valeurs
		$tableau = tabPronostiqueur(-1, $resultat_grille["id_grille"]);
		foreach ($tableau as $key2 => $resultat2) {
			$nbpoints = $resultat2["point"];
			$nbpronos = $resultat2["nbpronos"];			
    	$idusr = $key2;
    	
    	//Recherche de la précédante valeur
    	if ($i != 0)
    		$j = $i-1;
    	else
    		$j = 0;
    		
			$old_nbpoints = $resultatFonction[$j][$idusr]["point"];
			$old_nbpronos = $resultatFonction[$j][$idusr]["nbpronos"];    	
    	
  		$new_nbpoints = $nbpoints + $old_nbpoints;
			$new_nbpronos = $nbpronos + $old_nbpronos;
			$new_pourcentage = number_format(round($new_nbpoints/$new_nbpronos*100, 2), 2, ',', ' ');
			$new_pourcent = $new_nbpoints/$new_nbpronos*100;
    	
    	//Mise à jour
    	//print("Ajout = $new_nbpoints<br>");    	
    	$resultatFonction[$i][$idusr]["point"] = $new_nbpoints;
			$resultatFonction[$i][$idusr]["pourcentage"] = $new_pourcentage;
			$resultatFonction[$i][$idusr]["pourcent"] = $new_pourcent;
			$resultatFonction[$i][$idusr]["nbpronos"] = $new_nbpronos;
			$resultatFonction[$i][$idusr]["idusr"] = $key2;
			
			//if ($idusr == 4 or $idusr == 5) print $idusr.": MAJ point en $i: ".$new_nbpoints."<br>"; 

		}
		
		$i++;
	}
	
	//die("taille tableau: ".sizeof($resultatFonction));
	
	return $resultatFonction;
}
Qui est exécuté je sais pas combien de fois dans le graph d'évolution, là tu te dis que les optimisations sont super importantes.
Aurelienazerty

Image

Avatar de l’utilisateur
Nicolazerty
l'élu
Messages : 4004
Inscription : septembre 27, 2002, 2:59 pm

Re: 3

#272

Message par Nicolazerty » août 22, 2007, 11:11 pm

Aurelienazerty a écrit :
  • Moi: Journée 1 à 13
  • Nico: Journée 14 à 26
  • Ludo: Journée 27 à 38
y en a un qui glande...
Résistance !

Avatar de l’utilisateur
Administr@Tueur
Obiwan Kenobi
Messages : 1025
Inscription : août 7, 2004, 12:20 pm

Re: 3

#273

Message par Administr@Tueur » août 23, 2007, 8:46 am

Nicolazerty a écrit :y en a un qui glande...
Hé oh, j'ai une vie sexuelle (moi)
Administr@Tueur

Avatar de l’utilisateur
Aurelienazerty
Webmaster / Président
Messages : 19373
Inscription : septembre 27, 2002, 9:41 pm

nous aussi

#274

Message par Aurelienazerty » août 23, 2007, 8:55 am

Mes couilles sur ton nez.
Le mattage de win n'est pas considéré comme une pratique sexuelle.
Aurelienazerty

Image

Avatar de l’utilisateur
Nicolazerty
l'élu
Messages : 4004
Inscription : septembre 27, 2002, 2:59 pm

#275

Message par Nicolazerty » août 23, 2007, 10:09 am

et le boulot ca sert à quoi???
Résistance !

Répondre