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.date
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
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;
}
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;
}