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.
Dernier message de la page précédente :
De l'autre côté faut toutes les saisir.C'est fait, choisir toutes les grilles à venir dans la 3° listeChristophe 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, 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 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. Normalement... ça fonctionne.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 ?
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 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.dateCode : 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 dateCode : 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;
}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;
}