[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 du membre
Aurelienazerty
Webmaster / Président
Messages : 18941
Enregistré le : septembre 27th, 2002, 9:41 pm

ou les saisir

Message par Aurelienazerty » juin 26th, 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 du membre
Aurelienazerty
Webmaster / Président
Messages : 18941
Enregistré le : septembre 27th, 2002, 9:41 pm

fait

Message par Aurelienazerty » juillet 4th, 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 du membre
Aurelienazerty
Webmaster / Président
Messages : 18941
Enregistré le : septembre 27th, 2002, 9:41 pm

C'est très moche

Message par Aurelienazerty » juillet 4th, 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 du membre
Nicolazerty
l'élu
Messages : 3987
Enregistré le : septembre 27th, 2002, 2:59 pm

Message par Nicolazerty » juillet 8th, 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 du membre
Aurelienazerty
Webmaster / Président
Messages : 18941
Enregistré le : septembre 27th, 2002, 9:41 pm

oki

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

C'est dur à le refaire ce bug.
Aurelienazerty

Image

Avatar du membre
Aurelienazerty
Webmaster / Président
Messages : 18941
Enregistré le : septembre 27th, 2002, 9:41 pm

Les groupes

Message par Aurelienazerty » juillet 18th, 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 du membre
Nicolazerty
l'élu
Messages : 3987
Enregistré le : septembre 27th, 2002, 2:59 pm

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

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

Avatar du membre
Aurelienazerty
Webmaster / Président
Messages : 18941
Enregistré le : septembre 27th, 2002, 9:41 pm

done

Message par Aurelienazerty » juillet 19th, 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 du membre
Aurelienazerty
Webmaster / Président
Messages : 18941
Enregistré le : septembre 27th, 2002, 9:41 pm

euro

Message par Aurelienazerty » juillet 27th, 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 du membre
Nicolazerty
l'élu
Messages : 3987
Enregistré le : septembre 27th, 2002, 2:59 pm

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

photoshop...
Résistance !

Avatar du membre
Aurelienazerty
Webmaster / Président
Messages : 18941
Enregistré le : septembre 27th, 2002, 9:41 pm

nop

Message par Aurelienazerty » juillet 27th, 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 du membre
Nicolazerty
l'élu
Messages : 3987
Enregistré le : septembre 27th, 2002, 2:59 pm

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

Image
Résistance !

Avatar du membre
Aurelienazerty
Webmaster / Président
Messages : 18941
Enregistré le : septembre 27th, 2002, 9:41 pm

Re: Les groupes

Message par Aurelienazerty » juillet 27th, 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 du membre
Administr@Tueur
Obiwan Kenobi
Messages : 1021
Enregistré le : août 7th, 2004, 12:20 pm

Message par Administr@Tueur » août 1st, 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 du membre
Aurelienazerty
Webmaster / Président
Messages : 18941
Enregistré le : septembre 27th, 2002, 9:41 pm

date

Message par Aurelienazerty » août 1st, 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 du membre
Davidazerty
l'élu
Messages : 2366
Enregistré le : octobre 12th, 2002, 3:30 pm

Message par Davidazerty » août 1st, 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 du membre
Aurelienazerty
Webmaster / Président
Messages : 18941
Enregistré le : septembre 27th, 2002, 9:41 pm

dank

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

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

Image

Avatar du membre
Aurelienazerty
Webmaster / Président
Messages : 18941
Enregistré le : septembre 27th, 2002, 9:41 pm

marche po

Message par Aurelienazerty » août 2nd, 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 du membre
Nicolazerty
l'élu
Messages : 3987
Enregistré le : septembre 27th, 2002, 2:59 pm

Message par Nicolazerty » août 2nd, 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 du membre
Aurelienazerty
Webmaster / Président
Messages : 18941
Enregistré le : septembre 27th, 2002, 9:41 pm

SQL

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

ça donne quoi en SQL?
Aurelienazerty

Image

Avatar du membre
Davidazerty
l'élu
Messages : 2366
Enregistré le : octobre 12th, 2002, 3:30 pm

Message par Davidazerty » août 2nd, 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 du membre
Aurelienazerty
Webmaster / Président
Messages : 18941
Enregistré le : septembre 27th, 2002, 9:41 pm

nop

Message par Aurelienazerty » août 2nd, 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 du membre
Nicolazerty
l'élu
Messages : 3987
Enregistré le : septembre 27th, 2002, 2:59 pm

Re: 3

Message par Nicolazerty » août 22nd, 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 du membre
Administr@Tueur
Obiwan Kenobi
Messages : 1021
Enregistré le : août 7th, 2004, 12:20 pm

Re: 3

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

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

Avatar du membre
Aurelienazerty
Webmaster / Président
Messages : 18941
Enregistré le : septembre 27th, 2002, 9:41 pm

nous aussi

Message par Aurelienazerty » août 23rd, 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 du membre
Nicolazerty
l'élu
Messages : 3987
Enregistré le : septembre 27th, 2002, 2:59 pm

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

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

Répondre