1080 lines
53 KiB
PHP
Executable File
1080 lines
53 KiB
PHP
Executable File
<?PHP
|
|
|
|
$id_tournoi=$_GET['tournoi'];
|
|
$date_planning=$_GET['date'];
|
|
$protection=$_GET['protection'];
|
|
/* Indique le nombre de courts ouverts pour le tournoi */
|
|
$nb_courts_ouverts=$_GET['nb_courts'];
|
|
|
|
$faits=fopen("./cer/tab/tab.fai","w");
|
|
include("conf.php");
|
|
include("mysql_compat.php");
|
|
include ("conf.php");
|
|
$db_connection=mysql_connect($db_host,$db_user,$password);
|
|
mysql_select_db($db_name,$db_connection);
|
|
///////////////////////// SELECTION DES CATEGORIES DU TOURNOI ///////////////////////////////////////////////////////////////////
|
|
$requete="SELECT id_categorie FROM categories_par_tournoi WHERE id_tournoi='$id_tournoi'";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
$cat_tournoi=array();
|
|
while($cat=mysql_fetch_object($reponse)) {
|
|
array_push($cat_tournoi, $cat->id_categorie);
|
|
}
|
|
|
|
//////////////////////// RECHERCHE DES TABLEAUX CREES AVEC LEURS TRANCHES ///////////////////////////////////////////////////////
|
|
/* Avancement pour chaque categorie */
|
|
$avancement=array();
|
|
for($i=0;$i<count($cat_tournoi);$i++) {
|
|
/* Controle si un tableau existe dans cette categorie */
|
|
$requete="SELECT id_tableau FROM tableaux WHERE id_tournoi='$id_tournoi' AND id_categorie='$cat_tournoi[$i]'";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
$existe_cat=mysql_num_rows($reponse);
|
|
if($existe_cat>0) {
|
|
/* Controle si un tableau de la catégorie a été modifié */
|
|
$requete="SELECT id_tableau FROM tableaux WHERE id_tournoi='$id_tournoi' AND id_categorie='$cat_tournoi[$i]' AND flag_modif='1'";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
$existe=mysql_num_rows($reponse);
|
|
if($existe==0) {
|
|
/*$requete="SELECT MAX(avancement) FROM tableaux WHERE id_tournoi='$id_tournoi' AND id_categorie='$cat_tournoi[$i]' AND flag_modif='0'";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
$temp=mysql_fetch_array($reponse);
|
|
$avan=$temp[0] */
|
|
$requete="SELECT id_tableau, MAX(avancement) AS avancement FROM tableaux WHERE id_tournoi='$id_tournoi' AND id_categorie='$cat_tournoi[$i]' AND flag_modif='0' GROUP BY id_tableau";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
}
|
|
$tab=mysql_fetch_object($reponse);
|
|
$id_tab=$tab->id_tableau;
|
|
}
|
|
/* s'il n'y a pas de tableaux dans la categorie */
|
|
else {
|
|
$id_tab=0;
|
|
}
|
|
/* Place le tableau en cours dans le tableau d'avancement (ce tableau suit les catégories */
|
|
array_push($avancement, $id_tab);
|
|
}
|
|
echo "Categories tournoi :";
|
|
print_r($cat_tournoi); echo "<br />";
|
|
echo "Tableau en cours : ";
|
|
print_r($avancement); echo "<br />";
|
|
|
|
|
|
//////////////////////////////////////////////////RECHERCHE DES JOUEURS DANS CETTE CATEGORIE/////////////////////////////////////
|
|
include("constantes.php");
|
|
$nb_joueurs_cat=array();
|
|
$entrants=array();
|
|
for($j=0;$j<count($cat_tournoi);$j++) {
|
|
if($cat_tournoi[$j]==27 or $cat_tournoi[$j]==28 or $cat_tournoi[$j]==29) {
|
|
if($avancement[$j]!=0) {
|
|
/* Recherche des equipes inscrites sur le site */
|
|
$nb_joueurs_site=0;
|
|
$requete="SELECT * FROM equipes_double WHERE id_tournoi='$id_tournoi' AND id_categorie='$cat_tournoi[$j]'";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
$nb_joueurs_site=mysql_num_rows($reponse);
|
|
/* Recherche des joueurs inscrits virtuellement sur le site */
|
|
$nb_joueurs_virt=0;
|
|
for($i=$debut_tab;$i>=$fin_tab;$i--) {
|
|
$requete="SELECT nombre FROM joueurs_virtuels WHERE id_tournoi='$id_tournoi' AND id_categorie='$cat_tournoi[$j]'";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
$temp=mysql_fetch_object($reponse);
|
|
$nb_joueurs_virt+=$temp->nombre;
|
|
}
|
|
/* Recherche des joueurs qualifiés pour ce tableau */
|
|
if($avancement[$j]>=1) {
|
|
$requete="SELECT entrants FROM tableaux WHERE id_tableau='$avancement[$j]'";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
$tmp=mysql_fetch_object($reponse);
|
|
$tmp2=$tmp->entrants;
|
|
}
|
|
else {
|
|
$tmp2=0;
|
|
}
|
|
|
|
array_push($entrants, $tmp2);
|
|
$nb_joueurs=$tmp2+$nb_joueurs_site+$nb_joueurs_virt;
|
|
array_push($nb_joueurs_cat, $nb_joueurs);
|
|
}
|
|
}
|
|
else {
|
|
if($avancement[$j]!=0) {
|
|
$debut_tab=array_search(recup_debut_tranche_tableau($avancement[$j], $db_connection), $tab_classement);
|
|
$fin_tab=array_search(recup_fin_tranche_tableau($avancement[$j], $db_connection), $tab_classement);
|
|
/* Recherche des joueurs inscrits sur le site */
|
|
$nb_joueurs_site=0;
|
|
for($i=$debut_tab;$i>=$fin_tab;$i--) {
|
|
if($tab_classement[$i]=="30/0") { $classement="30";}
|
|
else if($tab_classement[$i]=="15/0") { $classement="15";}
|
|
else { $classement=$tab_classement[$i];}
|
|
$requete="SELECT * FROM inscription_tournoi i, joueur j WHERE id_tournoi='$id_tournoi' AND id_categorie='$cat_tournoi[$j]' AND j.classement='$classement' AND j.id_joueur=i.id_joueur";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
$nb_joueurs_site+=mysql_num_rows($reponse);
|
|
}
|
|
/* Recherche des joueurs inscrits virtuellement sur le site */
|
|
$nb_joueurs_virt=0;
|
|
for($i=$debut_tab;$i>=$fin_tab;$i--) {
|
|
$requete="SELECT nombre FROM joueurs_virtuels WHERE id_tournoi='$id_tournoi' AND id_categorie='$cat_tournoi[$j]' AND classement='$tab_classement[$i]'";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
$temp=mysql_fetch_object($reponse);
|
|
$nb_joueurs_virt+=$temp->nombre;
|
|
}
|
|
/* Recherche des joueurs qualifiés pour ce tableau */
|
|
if($avancement[$j]>=1) {
|
|
$requete="SELECT entrants FROM tableaux WHERE id_tableau='$avancement[$j]'";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
$tmp=mysql_fetch_object($reponse);
|
|
$tmp2=$tmp->entrants;
|
|
}
|
|
else {
|
|
$tmp2=0;
|
|
}
|
|
|
|
array_push($entrants, $tmp2);
|
|
$nb_joueurs=$tmp2+$nb_joueurs_site+$nb_joueurs_virt;
|
|
array_push($nb_joueurs_cat, $nb_joueurs);
|
|
}
|
|
}
|
|
}
|
|
|
|
echo "Nombre joueurs categorie : ";
|
|
print_r($nb_joueurs_cat); echo "<br />";
|
|
/* Recupère le débbut et la fin du tournoi */
|
|
$requete="SELECT nom, debut, fin, id_club FROM tournoi WHERE id_tournoi='$id_tournoi'";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
$tournoi=mysql_fetch_object($reponse);
|
|
|
|
|
|
/************************************************/
|
|
/* Nombre de joueurs par classement */
|
|
/************************************************/
|
|
$nb_joueur_clt=array();
|
|
for($j=0;$j<count($cat_tournoi);$j++) {
|
|
/* Tableaux de doubles */
|
|
if($cat_tournoi[$j]!=27 and $cat_tournoi[$j]!=28 and $cat_tournoi[$j]!=29) {
|
|
/* Tableau de simples */
|
|
if($avancement[$j]!=0) {
|
|
$debut_tab=array_search(recup_debut_tranche_tableau($avancement[$j], $db_connection), $tab_classement);
|
|
$fin_tab=array_search(recup_fin_tranche_tableau($avancement[$j], $db_connection), $tab_classement);
|
|
for($i=$debut_tab;$i>=$fin_tab;$i--) {
|
|
if($tab_classement[$i]=="30/0") { $classement="30";}
|
|
else if($tab_classement[$i]=="15/0") { $classement="15";}
|
|
else { $classement=$tab_classement[$i];}
|
|
$requete="SELECT * FROM inscription_tournoi i, joueur j WHERE i.id_joueur=j.id_joueur AND j.classement='$classement' AND i.id_tournoi='$id_tournoi' AND i.id_categorie='$cat_tournoi[$j]'";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
$joueurs_site=mysql_num_rows($reponse);
|
|
$requete="SELECT nombre FROM joueurs_virtuels WHERE classement='$tab_classement[$i]' AND id_tournoi='$id_tournoi' AND id_categorie='$cat_tournoi[$j]'";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
$temp=mysql_fetch_object($reponse);
|
|
$virtuels=$temp->nombre;
|
|
$nombre=$joueurs_site+$virtuels;
|
|
$nb_joueur_clt[$j][$tab_classement[$i]]=$nombre;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
echo "Nombre joueurs_classement : ";
|
|
print_r($nb_joueur_clt); echo "<br />";
|
|
|
|
|
|
/***************************************************/
|
|
/* calculs préliminaires au tableau */
|
|
/***************************************************/
|
|
$calculs=array();
|
|
$indice=0;
|
|
/* Récupère la méthode de calcul pour chaque tableau */
|
|
for($i=0;$i<count($cat_tournoi);$i++) {
|
|
/* Si un tableau existe */
|
|
if($avancement[$i]!=0) {
|
|
$intermediaire=array();
|
|
$debut_clt=recup_debut_tranche_tableau($avancement[$j], $db_connection);
|
|
/* Recupère le numero de la méthode */
|
|
$requete="SELECT methode, entrants, sortants FROM tableaux WHERE id_tableau='$avancement[$i]'";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
$tmp=mysql_fetch_object($reponse);
|
|
$methode=$tmp->methode;
|
|
$sortants=$tmp->sortants;
|
|
$entrants=$tmp->entrants;
|
|
$nb_joueurs=$nb_joueurs_cat[$indice];
|
|
if($cat_tournoi[$i]==27 or $cat_tournoi[$i]==27 or $cat_tournoi[$i]==27) {
|
|
$intermediaire['type']="double";
|
|
}
|
|
else {
|
|
$intermediaire['type']="simple";
|
|
}
|
|
if($methode==1) {
|
|
for($j=1;$j<10;$j++) {
|
|
if(pow(2, $j) > $nb_joueurs) {
|
|
break;
|
|
}
|
|
}
|
|
$dimension_tab=pow(2, $j);
|
|
echo "Tableau classique <br>";
|
|
$exempts=$dimension_tab-$nb_joueurs;
|
|
$ne=$nb_joueurs-$exempts;
|
|
$npne=($ne)/2;
|
|
$pre_tour=$npne;
|
|
$tete_serie=$dimension_tab/4;
|
|
/* Nombre de compressions */
|
|
if ($entrants > $sortants) {
|
|
$compression=abs($entrants-$sortants);
|
|
}
|
|
else {
|
|
$compression=0;
|
|
}
|
|
/* Nombre de couples indissociables */
|
|
if($entrants==0){
|
|
$couple=$sortants;
|
|
}
|
|
else {
|
|
$couple=$entrants;
|
|
}
|
|
|
|
$intermediaire['methode']="CLASSIQUE";
|
|
$intermediaire['nb_joueurs']=$nb_joueurs;
|
|
$intermediaire['entrants']=$entrants;
|
|
$intermediaire['sortants']=$sortants;
|
|
$intermediaire['dimension']=$dimension_tab;
|
|
$intermediaire['exempts']=$exempts;
|
|
$intermediaire['non_exempts']=$ne;
|
|
$intermediaire['npne']=$npne;
|
|
$intermediaire['pre_tour']=$pre_tour;
|
|
$intermediaire['tete_serie']=$tete_serie;
|
|
$intermediaire['compression']=$compression;
|
|
$intermediaire['couple']=$couple;
|
|
}
|
|
/* Méthode Tableau à sections */
|
|
else if($methode==2) {
|
|
for($j=1;$j<10;$j++) {
|
|
if($sortants*pow(2, $j) > $nb_joueurs) {
|
|
break;
|
|
}
|
|
}
|
|
$sections=$sortants;
|
|
$dimension_tab=$sections*pow(2, $j);
|
|
echo "Tableau classique sections <br>";
|
|
$exempts=$dimension_tab-$nb_joueurs;
|
|
$ne=$nb_joueurs-$exempts;
|
|
$npne=($ne)/2;
|
|
$pre_tour=$npne;
|
|
$tete_serie=$dimension_tab/4;
|
|
if ($entrants > $sortants) {
|
|
$compression=abs($entrants-$sortants);
|
|
}
|
|
else {
|
|
$compression=0;
|
|
}
|
|
if($entrants==0){
|
|
$couple=$sortants;
|
|
}
|
|
else {
|
|
$couple=$entrants;
|
|
}
|
|
|
|
$intermediaire['methode']="SECTIONS";
|
|
$intermediaire['nb_joueurs']=$nb_joueurs;
|
|
$intermediaire['sortants']=$sortants;
|
|
$intermediaire['entrants']=$entrants;
|
|
$intermediaire['sections']=$sections;
|
|
$intermediaire['dimension']=$dimension_tab;
|
|
$intermediaire['exempts']=$exempts;
|
|
$intermediaire['non_exempts']=$ne;
|
|
$intermediaire['npne']=$npne;
|
|
$intermediaire['pre_tour']=$pre_tour;
|
|
$intermediaire['tete_serie']=$tete_serie;
|
|
$intermediaire['compression']=$compression;
|
|
$intermediaire['couple']=$couple;
|
|
}
|
|
/* Methode Entree echelonnee */
|
|
else if($methode==3) {
|
|
echo "Tableau entrée echelonnée<br />";
|
|
for($j=1;$j<10;$j++) {
|
|
if(pow(2, $j) > $nb_joueurs) {
|
|
break;
|
|
}
|
|
}
|
|
$dimension_tab=pow(2, $j);
|
|
echo "Tableau classique <br>";
|
|
$exempts=$dimension_tab-$nb_joueurs;
|
|
$ne=$nb_joueurs-$exempts;
|
|
$npne=($ne)/2;
|
|
$pre_tour=$npne;
|
|
$tete_serie=$dimension_tab/4;
|
|
if($entrants > $sortants) {
|
|
$nb_compressions=$entrants-$sortants;
|
|
}
|
|
else {
|
|
$nb_compressions=0;
|
|
}
|
|
if($entrants==0){
|
|
$couple=$sortants;
|
|
}
|
|
else {
|
|
$couple=$entrants;
|
|
}
|
|
$intermediaire['methode']="ENTREE_ECHELONNEE";
|
|
$intermediaire['nb_joueurs']=$nb_joueurs;
|
|
$intermediaire['sortants']=$sortants;
|
|
$intermediaire['entrants']=$entrants;
|
|
$intermediaire['sections']=$sections;
|
|
$intermediaire['dimension']=$dimension_tab;
|
|
$intermediaire['exempts']=$exempts;
|
|
$intermediaire['non_exempts']=$ne;
|
|
$intermediaire['npne']=$npne;
|
|
$intermediaire['pre_tour']=$pre_tour;
|
|
$intermediaire['tete_serie']=$tete_serie;
|
|
$intermediaire['compression']=$nb_compressions;
|
|
$intermediaire['couple']=$couple;
|
|
$intermediaire['couloir']=$sortants;
|
|
}
|
|
/* Méthode Tableau Départ en ligne - Final */
|
|
else {
|
|
echo "Tableau final <br />";
|
|
}
|
|
/* Place les caluls dans le tableau */
|
|
array_push($calculs, $intermediaire);
|
|
$indice++;
|
|
}
|
|
}
|
|
|
|
echo "Calculs tableaux : ";
|
|
print_r($calculs); echo "<br />";
|
|
|
|
/*****************************************************************************************/
|
|
/* Inscription des categories du tournoi */
|
|
/*****************************************************************************************/
|
|
$num=0;
|
|
$texte="";
|
|
for($i=0;$i<count($cat_tournoi);$i++) {
|
|
if($avancement[$i]!=0) {
|
|
$num++;
|
|
$texte.="CAT".($i+1)." ' CATEGORIE \n";
|
|
$texte.="TABLEAU_".$avancement[$i]." ' TABLEAU \n";
|
|
$texte.="TABLEAU_".$avancement[$i]." NUMERO ".$num."\n";
|
|
$texte.="TABLEAU_".$avancement[$i]." TABLEAU CAT".$cat_tournoi[$i]."\n";
|
|
}
|
|
}
|
|
fwrite($faits, $texte."\n");
|
|
fwrite($faits, "TABLEAU_COURANT ' 1\n\n");
|
|
|
|
/*****************************************************************************************/
|
|
/* Inscription de la methode utilisée */
|
|
/* et de ces options */
|
|
/*****************************************************************************************/
|
|
fwrite($faits, "; Type de tabeau utilise et ses options ;\n");
|
|
$texte="";
|
|
$indice=0;
|
|
for($i=0;$i<count($cat_tournoi);$i++) {
|
|
/* Si le tableau existe */
|
|
if($avancement[$i]!=0) {
|
|
/* Controle de la methode du tableau */
|
|
$texte="TABLEAU_".$avancement[$i]." METHODE_TABLEAU ".$calculs[$indice]['methode']."\n";
|
|
$texte="TABLEAU_".$avancement[$i]." TYPE ".strtoupper($calculs[$indice]['type'])."\n";
|
|
$texte.="TABLEAU_".$avancement[$i]." NOMBRE_JOUEURS ".$calculs[$indice]['nb_joueurs']."\n";
|
|
$texte.="TABLEAU_".$avancement[$i]." DIMENSION_TABLEAU ".$calculs[$indice]['dimension']."\n";
|
|
$texte.="TABLEAU_".$avancement[$i]." QUALIFIES_ENTRANTS ".$calculs[$indice]['entrants']."\n";
|
|
$texte.="TABLEAU_".$avancement[$i]." SORTANTS ".$calculs[$indice]['sortants']."\n";
|
|
$texte.="TABLEAU_".$avancement[$i]." EXEMPTS ".$calculs[$indice]['exempts']."\n";
|
|
$texte.="TABLEAU_".$avancement[$i]." NON_EXEMPTS ".$calculs[$indice]['non_exempts']."\n";
|
|
$texte.="TABLEAU_".$avancement[$i]." NPNE ".$calculs[$indice]['npne']."\n";
|
|
$texte.="TABLEAU_".$avancement[$i]." PRE_TOUR ".$calculs[$indice]['pre_tour']."\n";
|
|
$texte.="TABLEAU_".$avancement[$i]." TETE_SERIE ".$calculs[$indice]['tete_serie']."\n";
|
|
$texte.="TABLEAU_".$avancement[$i]." COMPRESSIONS ".$calculs[$indice]['compression']."\n";
|
|
$texte.="TABLEAU_".$avancement[$i]." COUPLES ".$calculs[$indice]['couple']."\n";
|
|
|
|
/* Options poarticulière pour certains tableaux */
|
|
if($calculs[$indice]['methode']=="CLASSIQUE") {
|
|
fwrite($faits, "; Indique le tour courant ; \n");
|
|
fwrite($faits, "NB_TOURS ' 2\n");
|
|
for($i=0;$i<2;$i++) {
|
|
fwrite($faits, "TOUR_".($i+1)." ' TOUR\n");
|
|
fwrite($faits, "TOUR_".($i+1)." NUMERO ".($i+1)."\n");
|
|
}
|
|
}
|
|
else if($calculs[$indice]['methode']=="SECTIONS") {
|
|
$texte.="TABLEAU_".$avancement[$i]." SECTIONS ".$calculs[$indice]['sections']."\n";
|
|
fwrite($faits, "; Indique le tour courant ; \n");
|
|
fwrite($faits, "NB_TOURS ' 2\n");
|
|
for($i=0;$i<2;$i++) {
|
|
fwrite($faits, "TOUR_".($i+1)." ' TOUR\n");
|
|
fwrite($faits, "TOUR_".($i+1)." NUMERO ".($i+1)."\n");
|
|
}
|
|
}
|
|
else if($calculs[$indice]['methode']=="ENTREE_ECHELONNEE") {
|
|
$texte.="TABLEAU_CAT".$avancement[$i]." COULOIR ".$calculs[$indice]['couloir']."\n";
|
|
fwrite($faits, $texte."\n\n");
|
|
}
|
|
|
|
$indice++;
|
|
}
|
|
$texte="";
|
|
}
|
|
fwrite($faits, "TOUR_COURANT ' 1\n\n");
|
|
fwrite($faits, "MATCH_COURANT ' 1\n\n");
|
|
|
|
/************************************************************************/
|
|
/* Classements concernés */
|
|
/************************************************************************/
|
|
fwrite($faits, "; Classements et leurs numeros ; \n");
|
|
$texte="";
|
|
$texte_num="";
|
|
$nb_serie=4;
|
|
for($i=count($tab_classement)-1;$i>=0;$i--) {
|
|
$texte.=$tab_classement[$i]." ' CLASSEMENT\n";
|
|
$texte_num.=$tab_classement[$i]." VAUT ".$i."\n";
|
|
if($tab_classement[$i]=="30/0" or $tab_classement[$i]=="15/0" or $tab_classement[$i]=="mieux") {
|
|
$nb_serie-=1;
|
|
}
|
|
$texte_serie.=$tab_classement[$i]." SERIE_NUMERO ".$nb_serie."\n";
|
|
}
|
|
fwrite($faits, $texte."\n");
|
|
fwrite($faits, $texte_num."\n");
|
|
fwrite($faits, $texte_serie."\n\n");
|
|
|
|
/* Insertion dans les faits du nombre de joueurs par classement */
|
|
$texte="";
|
|
for($j=0;$j<count($cat_tournoi);$j++) {
|
|
if($avancement[$j]!=0) {
|
|
$debut_tab=array_search(recup_debut_tranche_tableau($avancement[$j], $db_connection), $tab_classement);
|
|
$fin_tab=array_search(recup_fin_tranche_tableau($avancement[$j], $db_connection), $tab_classement);
|
|
for($i=$debut_tab;$i>=$fin_tab;$i--) {
|
|
if($nb_joueur_clt[$j][$tab_classement[$i]]>0) {
|
|
$texte.=$tab_classement[$i]." TABLEAU_".$avancement[$j]." ".$nb_joueur_clt[$j][$tab_classement[$i]]."\n";
|
|
}
|
|
else {
|
|
$texte.=$tab_classement[$i]." TABLEAU_".$avancement[$j]." 0\n";
|
|
}
|
|
}
|
|
fwrite($faits, "TABLEAU_".$avancement[$j]." CLASSEMENT_MEILLEUR ".$fin_tab." ; INITIALISATION Au MEILLEUR CLASSMENT Du DECOUPAGE SI ON A MIEUX ON DIMINUERA ;\n");
|
|
fwrite($faits, "TABLEAU_".$avancement[$j]." CLASSEMENT_MOINS_BON ".$debut_tab." ; INITIALISATION AU MOINS BON CLASSEMENT DU DECOUPAGE SI ON A MOINS BIEN ON AUGMENTERA ;\n");
|
|
fwrite($faits, "CLASSEMENT_ACTUEL ' ".$debut_tab." ; SERT A INDIQUER LE CLASSEMENT EN COURS ;\n");
|
|
}
|
|
}
|
|
fwrite($faits, $texte."\n");
|
|
|
|
/*************************************************************************/
|
|
/* Créneaux horaires disponibles */
|
|
/*************************************************************************/
|
|
list($dbt_a, $dbt_m, $dbt_j)=explode("-", $tournoi->debut);
|
|
list($fin_a, $fin_m, $fin_j)=explode("-", $tournoi->fin);
|
|
$debut=mktime(9,0,0,$dbt_m, $dbt_j, $dbt_a);
|
|
$fin=mktime(23,0,0,$fin_m, $fin_j, $fin_a);
|
|
$nb_jours=(($fin-$debut)/86400)+1;
|
|
fwrite($faits, "; Creneaux horaires de la journée en cours ;\n");
|
|
$creneaux=array();
|
|
$nb_creneau=1;
|
|
$texte="";
|
|
list($now_j,$now_m, $now_a)=explode("-",$date_planning);
|
|
if($now_m<10) {$now_m="0".$now_m;}
|
|
if($now_j<10) {$now_j="0".$now_j;}
|
|
/* Créneaux pour la journée en cours */
|
|
if($['']<10) { $['']="0".$['']; }
|
|
for($j=0;$j<count($heure);$j++) {
|
|
list($h,$m)=explode(":",$heure[$j]);
|
|
$texte.=$now_j.$now_m."_".$h.$m." ' CRENEAU\n";
|
|
$texte_heures.=$now_j.$now_m."_".$h.$m." NUMERO_CRENEAU ".($j+1)." \n";
|
|
array_push($creneaux, $now_j.$now_m."_".$h.$m);
|
|
$nb_creneau++;
|
|
}
|
|
fwrite($faits, $texte."\n");
|
|
fwrite($faits, $texte_heures."\n");
|
|
fwrite($faits, "\n");
|
|
|
|
$now=mktime(9,0,0,$now_m, $now_j, $now_a);
|
|
|
|
/* Calcul du jour_courant */
|
|
if($now>=$debut and $now<$fin) {
|
|
$jour=(($now-$debut)/86400)+1;
|
|
fwrite($faits, "JOUR_COURANT ' ".($jour)." \n");
|
|
}
|
|
else {
|
|
fwrite($faits, "JOUR_COURANT ' 1 \n");
|
|
}
|
|
fwrite($faits, "DERNIER_JOUR ' ".(int)$nb_jours."\n\n");
|
|
|
|
//////////////////////////////// Courts disponibles pour la journée en cours /////////////////////////
|
|
fwrite($faits,"\n; Courts du Club;\n");
|
|
if($protection=='couvert') {
|
|
$requete="SELECT id_reservable FROM reservable WHERE id_club='$tournoi->id_club' AND protection LIKE 'Couvert'";
|
|
}
|
|
else if($protection=='deux') {
|
|
$requete="SELECT id_reservable FROM reservable WHERE id_club='$tournoi->id_club'";
|
|
}
|
|
else {
|
|
$requete="SELECT id_reservable FROM reservable WHERE id_club='$tournoi->id_club' AND protection <> 'Couvert'";
|
|
}
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
$nb=mysql_num_rows($reponse);
|
|
$texte="";
|
|
$courts=array();
|
|
/* Controle si le nombre choisi par le juge arbitre est bon */
|
|
if($nb_courts_ouverts>$nb) {
|
|
$nb_courts_ouverts=$nb;
|
|
}
|
|
for($i=0;$i<$nb_courts_ouverts;$i++) {
|
|
$court=mysql_fetch_object($reponse);
|
|
$texte.="COURT_".$court->id_reservable." ' COURT\n";
|
|
array_push($courts, $court->id_reservable);
|
|
}
|
|
fwrite($faits, $texte."\n\n");
|
|
|
|
///////////////////// Creneaux disponibles pour les terrains pour la journée demandée - A FAIRE /////////////////////////////
|
|
$texte="; Indique la disponibilite des terrains ;\n";
|
|
$annee=date("Y");
|
|
for($i=0;$i<count($courts);$i++) {
|
|
for($j=0;$j<count($creneaux);$j++) {
|
|
/* Controle si le terrain est libre à cette horaire */
|
|
list($date, $heure)=explode("_", $creneaux[$j]);
|
|
$jour=substr($date, 0,2);
|
|
$mois=substr($date, 2,2);
|
|
$date="$annee-$mois-$jour";
|
|
$h=substr($heure, 0,2);
|
|
$m=substr($heure,2,2);
|
|
$heure="$h:$m:00";
|
|
$requete="SELECT id_reservation FROM reservation WHERE date_resa='$date' AND heure_resa_deb='$heure' AND id_reservable='$courts[$i]'";
|
|
//echo $requete."<br />";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
$existe=mysql_num_rows($reponse);
|
|
/* Si le terrain est libre à cette heure-ci */
|
|
if($existe==0) {
|
|
$texte.="COURT_".$courts[$i]." LIBRE ".$creneaux[$j]." \n";
|
|
}
|
|
}
|
|
}
|
|
fwrite($faits, $texte."\n\n");
|
|
|
|
///////////////////////////////RECHERCHE DES JOUEURS QUALIFIES////////////////////////////
|
|
$tour_courant=1;
|
|
$nb_joueur=0;
|
|
$qualif=array();
|
|
$indice=0;
|
|
for($j=0;$j<count($cat_tournoi);$j++) {
|
|
/* Si tableaux de doubles */
|
|
if($cat_tournoi[$j]==27 or $cat_tournoi[$j]==28 or $cat_tournoi[$j]==29) {
|
|
if($avancement[$j]!=0) {
|
|
$requete="SELECT entrants, avancement FROM tableaux WHERE id_tableau='$avancement[$j]'";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
$nb_tableau=mysql_num_rows($reponse);
|
|
if($nb_tableau > 0) {
|
|
$res=mysql_fetch_object($reponse);
|
|
$avt=$res->avancement;
|
|
$entrants=$res->entrants;
|
|
}
|
|
/* si le nombre de qualifiés est > 0, on récupère les qualifiés du tableau precedent */
|
|
if($entrants > 0 /*and $avt > 1 */){
|
|
//$requete="SELECT r.id_vainqueur, j.classement FROM tableau_tournoi t, reservation r, joueur j WHERE t.id_categorie = '$categorie' AND t.id_tournoi='$id_tournoi' AND t.avancement='$avt' AND t.id_reservation=r.id_reservation AND j.id_joueur=r.id_vainqueur";
|
|
//$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
//while ($reptab=mysql_fetch_array($reponse)){
|
|
for($i=0;$i<$entrants;$i++) {
|
|
$id_joueur=$[''];
|
|
$requete="SELECT id_equipe,id_joueur1, id_joueur2 FROM equipes_double WHERE (id_joueur1='$id_joueur' OR id_joueur2='$id_joueur') AND id_categorie='$cat_tournoi[$j]' AND id_tournoi='$id_tournoi'";
|
|
$repons=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
$equipe=mysql_fetch_object($repons);
|
|
$ligne="";
|
|
$ligne.="EQUIPE_Q".$i." ' QUALIFIE\n";
|
|
$ligne.="EQUIPE_Q".î." COMPOSEE_DE JOUEUR_".$equipe->id_joueur1."\n";
|
|
$ligne.="EQUIPE_Q".î." COMPOSEE_DE JOUEUR_".$equipe->id_joueur2."\n";
|
|
array_push($qualif, $i/*$equipe->id_equipe*/);
|
|
fwrite($faits, $ligne."\n");
|
|
}
|
|
}
|
|
}
|
|
$indice++;
|
|
}
|
|
/* Sinon tableaux de simple */
|
|
else {
|
|
if($avancement[$j]!=0) {
|
|
$requete="SELECT entrants, avancement FROM tableaux WHERE id_tableau='$avancement[$j]'";
|
|
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
$nb_tableau=mysql_num_rows($reponse);
|
|
if($nb_tableau > 0) {
|
|
$res=mysql_fetch_object($reponse);
|
|
$avt=$res->avancement;
|
|
$entrants=$res->entrants;
|
|
}
|
|
/* si le nombre de qualifiés est > 0, on récupère les qualifiés du tableau precedent */
|
|
if($entrants > 0 /*and $avt > 1 */){
|
|
//$requete="SELECT r.id_vainqueur, j.classement FROM tableau_tournoi t, reservation r, joueur j WHERE t.id_categorie = '$categorie' AND t.id_tournoi='$id_tournoi' AND t.avancement='$avt' AND t.id_reservation=r.id_reservation AND j.id_joueur=r.id_vainqueur";
|
|
//$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
//while ($reptab=mysql_fetch_array($reponse)){
|
|
for($i=0;$i<$entrants;$i++) {
|
|
$ligne="";
|
|
$ligne.="JOUEUR_Q".$i." ' QUALIFIE\n";
|
|
$ligne.="JOUEUR_Q".$i/*reptab[id_vainqueur]*/." JOUE_TABLEAU TABLEAU_".$avancement[$j]."\n";
|
|
if($['']=="30") { $ligne.="JOUEUR_".$['']." EST_CLASSE 30/0\n"; }
|
|
else if($['']=="15") { $ligne.="JOUEUR_".$['']." EST_CLASSE 15/0\n"; }
|
|
else {
|
|
$ligne.="JOUEUR_Q".$i/*reptab[id_vainqueur]*/." EST_CLASSE "./*$['']*/NC."\n";
|
|
}
|
|
$ligne.="JOUEUR_Q".$i/*reptab[id_vainqueur]*/." LICENCE_CLUB ".$i."\n";
|
|
array_push($qualif, $i/*$['']*/);
|
|
fwrite($faits, $ligne."\n");
|
|
}
|
|
}
|
|
fwrite($faits,"TABLEAU_".$avancement[$j]." NB_QUALIFIES_ENTRANTS ".$entrants."\n\n");
|
|
}
|
|
$indice++;
|
|
}
|
|
}
|
|
|
|
echo "qualif : ";print_r($qualif);echo "\n";
|
|
/***************************************************************************************/
|
|
/* RECHERCHE DES JOUEURS QUI VONT ENTRER DANS LE TOURNOI site et virtuels) */
|
|
/***************************************************************************************/
|
|
fwrite($faits, "; Noms des joueurs, classement ;\n");
|
|
$indice=0;
|
|
$joueurs=array();
|
|
$equipes=array();
|
|
$num_virt=0;
|
|
for($j=0;$j<count($cat_tournoi);$j++) {
|
|
/* Tableaux de doubles */
|
|
if($cat_tournoi[$j]==27 or $cat_tournoi[$j]==28 or $cat_tournoi[$j]==29) {
|
|
if($avancement[$j]!=0) {
|
|
$pre_tour=$calculs[$indice]['pre_tour'];
|
|
$nb_joueurs_tour=$pre_tour*2;
|
|
if($calculs[$indice]['entrants'] > 0) {
|
|
$nb_joueur_tour1=$pre_tour;
|
|
}
|
|
else {
|
|
$nb_joueur_tour1=0;
|
|
}
|
|
|
|
/* joueurs virtuels */
|
|
$requete="SELECT * FROM joueurs_virtuels WHERE id_tournoi='$id_tournoi' AND id_categorie='$cat_tournoi[$j]' AND classement='$tab_classement[$i]'";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
while($virtuel=mysql_fetch_object($reponse)) {
|
|
$nb=$virtuel->nombre;
|
|
for($cpt=0;$cpt<$nb;$cpt++) {
|
|
$ligne="";
|
|
$ligne.="EQUIPE_V".$num_virt." ' EQUIPE\n";
|
|
$ligne.="EQUIPE_V".$num_virt." JOUE_TABLEAU TABLEAU_".$avancement[$j]."\n";
|
|
$ligne.="EQUIPE_V".$num_virt." EST_CLASSE ".$tab_classement[$i]."\n";
|
|
$ligne.="EQUIPE_V".$num_virt." LICENCE_CLUB ".$num_virt."\n";
|
|
array_push($equipes, "V".$num_virt);
|
|
$num_virt+=1;
|
|
fwrite($faits, $ligne."\n");
|
|
}
|
|
}
|
|
|
|
/* Joueurs inscrits au site */
|
|
$requete="SELECT e.id_equipe, e.id_joueur1, e.id_joueur2, j.classement FROM equipes_double e, joueur j WHERE i.id_categorie='$cat_tournoi[$j]' AND i.id_tournoi='$id_tournoi' AND i.id_joueur=j.id_joueur";
|
|
$repons=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
while($ids_equipes=mysql_fetch_array($repons)) {
|
|
$ligne="";
|
|
$requete="SELECT classement FROM joueur WHERE id_joueur='$['']'";
|
|
$rep=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
$joueur2=mysql_fetch_array($rep);
|
|
$ligne.="EQUIPE_".$['']." ' EQUIPE\n";
|
|
$ligne.="EQUIPE_".$['']." JOUE_TABLEAU TABLEAU_".$avancement[$j]."\n";
|
|
$ligne.="EQUIPE_".$['']." COMPOSEE_DE JOUEUR_".$['']."\n";
|
|
$ligne.="EQUIPE_".$['']." COMPOSEE_DE JOUEUR_".$['']."\n";
|
|
if($['']=="30") {$['']="30/0"; }
|
|
if($['']=="15") {$['']="15/0"; }
|
|
if($['']=="30") {$['']="30/0"; }
|
|
if($['']=="15") {$['']="15/0"; }
|
|
/* Recherche des nombres de points par classement */
|
|
$pt1=array_search($[''], $tab_classement);
|
|
$pt1=array_search($[''], $tab_classement);
|
|
$points=$pt1+$pt2;
|
|
$ligne.="EQUIPE_".$['']." NOMBRE_POINTS ".$points."\n";
|
|
array_push($equipes, $['']);
|
|
fwrite($faits, $ligne."\n");
|
|
}
|
|
}
|
|
$indice++;
|
|
}
|
|
/* Tableaux de simples */
|
|
else {
|
|
if($avancement[$j]!=0) {
|
|
$pre_tour=$calculs[$indice]['pre_tour'];
|
|
$nb_joueurs_tour=$pre_tour*2;
|
|
if($calculs[$indice]['entrants'] > 0) {
|
|
$nb_joueur_tour1=$pre_tour;
|
|
}
|
|
else {
|
|
$nb_joueur_tour1=0;
|
|
}
|
|
$debut_tab=array_search(recup_debut_tranche_tableau($avancement[$j], $db_connection), $tab_classement);
|
|
$fin_tab=array_search(recup_fin_tranche_tableau($avancement[$j], $db_connection), $tab_classement);
|
|
for($i=$debut_tab;$i>=$fin_tab;$i--) {
|
|
/* joueurs virtuels */
|
|
$requete="SELECT * FROM joueurs_virtuels WHERE id_tournoi='$id_tournoi' AND id_categorie='$cat_tournoi[$j]' AND classement='$tab_classement[$i]'";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
while($virtuel=mysql_fetch_object($reponse)) {
|
|
$nb=$virtuel->nombre;
|
|
for($cpt=0;$cpt<$nb;$cpt++) {
|
|
$ligne="";
|
|
$ligne.="JOUEUR_V".$num_virt." ' JOUEUR\n";
|
|
$ligne.="JOUEUR_V".$num_virt." JOUE_TABLEAU TABLEAU_".$avancement[$j]."\n";
|
|
$ligne.="JOUEUR_V".$num_virt." EST_CLASSE ".$tab_classement[$i]."\n";
|
|
$ligne.="JOUEUR_V".$num_virt." LICENCE_CLUB ".$num_virt."\n";
|
|
array_push($joueurs, "V".$num_virt);
|
|
$num_virt+=1;
|
|
fwrite($faits, $ligne."\n");
|
|
}
|
|
}
|
|
|
|
/* Joueurs inscrits au site */
|
|
if($tab_classement[$i]=="30/0") { $classement="30";}
|
|
else if($tab_classement[$i]=="15/0") { $classement="15";}
|
|
else { $classement=$tab_classement[$i];}
|
|
$requete="SELECT i.id_joueur, j.classement FROM inscription_tournoi i, joueur j WHERE i.id_categorie='$cat_tournoi[$j]' AND i.id_tournoi='$id_tournoi' AND i.id_joueur=j.id_joueur AND j.classement='$classement'";
|
|
$repons=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
while($ids_joueurs=mysql_fetch_array($repons)) {
|
|
$ligne="";
|
|
$ligne.="JOUEUR_".$['']." ' JOUEUR\n";
|
|
$ligne.="JOUEUR_".$['']." JOUE_TABLEAU TABLEAU_".$avancement[$j]."\n";
|
|
if($['']=="30") {$['']="30/0"; }
|
|
if($['']=="15") {$['']="15/0"; }
|
|
$ligne.="JOUEUR_".$['']." EST_CLASSE ".$['']."\n";
|
|
/* Dértermine le club du joueur */
|
|
$temp=utf8_decode("MembreLicencié");
|
|
$requete="SELECT id_club FROM compte WHERE statut='$temp' AND id_joueur='$['']'";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
$id_club=mysql_fetch_object($reponse);
|
|
$ligne.="JOUEUR_".$['']." LICENCE_CLUB ".$id_club->id_club."\n";
|
|
array_push($joueurs, $['']);
|
|
fwrite($faits, $ligne."\n");
|
|
}
|
|
}
|
|
$indice++;
|
|
}
|
|
}
|
|
}
|
|
|
|
print_r($joueurs);
|
|
|
|
$indice=0;
|
|
for($j=0;$j<count($cat_tournoi);$j++) {
|
|
if($avancement[$j]!=0) {
|
|
$methode=$calculs[$indice]['methode'];
|
|
$entrants=$calculs[$indice]['entrants'];
|
|
$pre_tour=$calculs[$indice]['pre_tour'];
|
|
$couple=$calculs[$indice]['couple'];
|
|
$tete_serie=$calculs[$indice]['tete_serie'];
|
|
if($methode=="CLASSIQUE" or $methode="SECTIONS") {
|
|
if($entrants > 0)
|
|
fwrite($faits, "TABLEAU_".$avancement[$j]." NB_JOUEUR_TOUR_1 ".($entrants*2)."\n\n");
|
|
else
|
|
fwrite($faits, "TABLEAU_".$avancement[$j]." NB_JOUEUR_TOUR_1 ".($couple*2)."\n\n");
|
|
if($entrants==0)
|
|
fwrite($faits, "TABLEAU_".$avancement[$j]." NB_JOUEUR_TOUR_2 ".(count($joueurs)-($couple*2))."\n\n");
|
|
else
|
|
fwrite($faits, "TABLEAU_".$avancement[$j]." NB_JOUEUR_TOUR_2 ".(count($joueurs)-$entrants)."\n\n");
|
|
}
|
|
$indice++;
|
|
}
|
|
}
|
|
|
|
/****************************************/
|
|
/* Affectation des tetes de série */
|
|
/****************************************/
|
|
$indice=0;
|
|
$ts=1;
|
|
$comp=0;
|
|
fwrite($faits, "; Placement des tetes de serie ;\n");
|
|
for($j=0;$j<count($cat_tournoi);$j++) {
|
|
$texte="";
|
|
/* Si un tableau valide est présent pour cette catégorie */
|
|
if($avancement[$j]!=0) {
|
|
/* Recup du nombre de tetes de série et du nombre de compressions */
|
|
$fin_tab=array_search(recup_fin_tranche_tableau($avancement[$j], $db_connection), $tab_classement);
|
|
$debut_tab=array_search(recup_debut_tranche_tableau($avancement[$j], $db_connection), $tab_classement);
|
|
$tete_serie=$calculs[$indice]['tete_serie'];
|
|
$nb_compression=$calculs[$indice]['compression'];
|
|
$id_joueur=count($joueurs)-1;
|
|
for($ts=1;$ts<=$tete_serie;$ts++) {
|
|
if($comp<$nb_compression) {
|
|
$texte.="TABLEAU_".$avancement[$j]." TETE_SERIE VAINQUEUR_1_".($comp+1)." ' ".$ts."\n";
|
|
$comp++;
|
|
}
|
|
else {
|
|
$texte.="TABLEAU_".$avancement[$j]." TETE_SERIE JOUEUR_".$joueurs[$id_joueur]." ' ".$ts."\n";
|
|
$id_joueur--;
|
|
}
|
|
}
|
|
$indice++;
|
|
$comp=0;
|
|
}
|
|
fwrite($faits, $texte."\n");
|
|
}
|
|
|
|
/***********************************************************************************/
|
|
/* Calculs pour les vainqueurs pour chaque tour pour tableaux Classique et sections*/
|
|
/***********************************************************************************/
|
|
$indice=0;
|
|
for($j=0;$j<count($cat_tournoi);$j++) {
|
|
if($avancement[$j]!=0) {
|
|
$methode=$calculs[$indice]['methode'];
|
|
if($methode=="CLASSIQUE" or $methode=="SECTIONS") {
|
|
$pre_tour=$calculs[$indice]['pre_tour'];
|
|
for($i=0;$i<$pre_tour;$i++) {
|
|
$texte="";
|
|
$texte.="VAINQUEUR_1_".($i+1)." ' VAINQUEUR\n";
|
|
$texte.="VAINQUEUR_1_".($i+1)." JOUE_TABLEAU TABLEAU_".$avancement[$j]."\n";
|
|
$texte.="VAINQUEUR_1_".($i+1)." ENTRE TOUR_2\n";
|
|
fwrite($faits, $texte."\n");
|
|
}
|
|
}
|
|
$indice++;
|
|
}
|
|
}
|
|
|
|
/*******************************************************************/
|
|
/* Création des qualifiées sortants du tableau */
|
|
/*******************************************************************/
|
|
$texte="";
|
|
$indice=0;
|
|
fwrite($faits, "\n\n; Création des qualifiées sortants du tableau ;\n");
|
|
for($j=0;$j<count($cat_tournoi);$j++) {
|
|
if($avancement[$j]!=0) {
|
|
$tete_serie=$calculs[$indice]['tete_serie'];
|
|
for($i=0;$i<$tete_serie;$i++) {
|
|
$texte="";
|
|
$texte.="VAINQUEUR_2_".($i+1)." ' QUALIFIE_SORTANT\n";
|
|
$texte.="VAINQUEUR_2_".($i+1)." JOUE_TABLEAU TABLEAU_".$avancement[$j]."\n";
|
|
fwrite($faits, $texte."\n");
|
|
}
|
|
}
|
|
$indice++;
|
|
}
|
|
|
|
/****************************************************************/
|
|
/* CRENEAUX OU LES JOUEURS SONT DISPONIBLES */
|
|
/****************************************************************/
|
|
fwrite($faits, "; Disponibilités des joueurs durant le tournoi;\n");
|
|
$heures_dispos_joueur="";
|
|
for($cpt=0;$cpt<count($joueurs);$cpt++) {
|
|
$requete="SELECT i.id_inscription, i.travaille FROM inscription_tournoi i, joueur j WHERE i.id_tournoi='$id_tournoi' AND i.id_joueur=j.id_joueur AND i.id_joueur='$joueurs[$cpt]' LIMIT 0,1";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
while($ids_joueurs=mysql_fetch_object($reponse)) {
|
|
/* Recup des jours et des heures */
|
|
echo $joueurs[$cpt]."<br />";
|
|
$travaille=strtoupper($ids_joueurs->travaille);
|
|
$heures_dispos_joueur.="JOUEUR_".$joueurs[$cpt]." TRAVAILLE ".$travaille." \n";
|
|
list($jour,$mois,$annee)=explode("-",$date_planning);
|
|
$date="$annee-$mois-$jour";
|
|
$requete="SELECT jour, heure FROM contraintes WHERE id_inscription='$ids_joueurs->id_inscription' AND jour='$date' AND type='simple' ORDER BY jour, heure ASC";
|
|
$reponse1=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
/* Place les creneaux horaires où le joueur est dispo dans le fichier */
|
|
while($dispo=mysql_fetch_object($reponse1)) {
|
|
list($a, $m, $j)=explode("-",$dispo->jour);
|
|
list($h, $min, $sec)=explode(":",$dispo->heure);
|
|
$texte=$j.$m."_".$h.$min;
|
|
$heures_dispos_joueur.="JOUEUR_".$joueurs[$cpt]." DISPONIBLE_CRENEAU ".$texte." \n";
|
|
}
|
|
}
|
|
}
|
|
fwrite($faits, $heures_dispos_joueur."\n");
|
|
|
|
/***********************************************************/
|
|
/* Disponibilités des équipes */
|
|
/***********************************************************/
|
|
fwrite($faits, "; Disponibilités des équipes durant le tournoi;\n");
|
|
$heures_dispos_joueur="";
|
|
for($cpt=0;$cpt<count($equipes);$cpt++) {
|
|
$requete="SELECT e.id_equipe, e.id_joueur1, e.id_joueur2, e.travaille_1, e.travaille_2 FROM equipes_double e, joueur j WHERE i.id_tournoi='$id_tournoi'";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
while($ids_joueurs=mysql_fetch_object($reponse)) {
|
|
/* Recup des jours et des heures */
|
|
$travaille_1=strtoupper($ids_joueurs->travaille_1);
|
|
$travaille_1=strtoupper($ids_joueurs->travaille_2);
|
|
$heures_dispos_joueur.="JOUEUR_".$ids_joueurs->id_joueur1." TRAVAILLE ".$travaille_1." \n";
|
|
$heures_dispos_joueur.="JOUEUR_".$ids_joueurs->id_joueur2." TRAVAILLE ".$travaille_2." \n";
|
|
list($jour,$mois,$annee)=explode("-",$date_planning);
|
|
$date="$annee-$mois-$jour";
|
|
$requete="SELECT jour, heure FROM contraintes WHERE id_inscription='$ids_joueurs->id_equipe' AND jour='$date' AND type='double' ORDER BY jour, heure ASC";
|
|
$reponse1=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
/* Place les creneaux horaires où le joueur est dispo dans le fichier */
|
|
while($dispo=mysql_fetch_object($reponse1)) {
|
|
list($a, $m, $j)=explode("-",$dispo->jour);
|
|
list($h, $min, $sec)=explode(":",$dispo->heure);
|
|
$texte=$j.$m."_".$h.$min;
|
|
$heures_dispos_joueur.="EQUIPE_".$joueurs[$cpt]." DISPONIBLE_CRENEAU ".$texte." \n";
|
|
}
|
|
}
|
|
}
|
|
fwrite($faits, $heures_dispos_joueur."\n");
|
|
|
|
/**********************************************************/
|
|
/* Matchs non programmés */
|
|
/**********************************************************/
|
|
for($j=0;$j<count($cat_tournoi);$j++) {
|
|
$texte="";
|
|
/* Si un tableau valide est présent pour cette catégorie */
|
|
if($avancement[$j]!=0) {
|
|
/* Controle si des matchs non programmés (pas de résa) sont présents pour ce tableau */
|
|
$requete="SELECT * FROM Matchs_tableaux WHERE id_tableau='$avancement[$j]' AND id_reservation='0'";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
while($match=mysql_fetch_object($reponse)) {
|
|
/* Joueur 1 */
|
|
/* Controle du type de joueur */
|
|
if($match->type_joueur=='site') {
|
|
$joueur1="JOUEUR_";
|
|
}
|
|
else if($match->type_joueur=='vainqueur') {
|
|
$joueur1="VAINQUEUR_".($match->nb_tour-1)."_";
|
|
}
|
|
else if($match->type_joueur=='virtuel') {
|
|
$joueur1="JOUEUR_V";
|
|
}
|
|
$joueur1.=$id_joueur;
|
|
/* Joueur 1 */
|
|
/* Controle du type de joueur */
|
|
if($match->type_adverse=='site') {
|
|
$joueur2="JOUEUR_";
|
|
}
|
|
else if($match->type_adverse=='vainqueur') {
|
|
$joueur2="VAINQUEUR_".($match->nb_tour-1)."_";
|
|
}
|
|
else if($match->type_adverse=='virtuel') {
|
|
$joueur2="JOUEUR_V";
|
|
}
|
|
$joueur2.=$id_adverse;
|
|
|
|
$texte.="TABLEAU_".$avancement[$j]." ".$joueur1." JOUE ".$joueur2." VAINQUEUR_".($match->nb_tour)."_".($match->num_couloir)."\n";
|
|
}
|
|
fwrite($faits, $texte."\n");
|
|
}
|
|
}
|
|
|
|
/**********************************************************/
|
|
/* Disponibilités des joueurs durant le tournoi */
|
|
/**********************************************************/
|
|
for($cpt=0;$cpt<count($qualif);$cpt++) {
|
|
$heures_dispo_joueur="";
|
|
for($i=0;$i<count($creneaux);$i++) {
|
|
$heures_dispo_joueur.="JOUEUR_Q".$qualif[$cpt]." DISPONIBLE_CRENEAU ".$creneaux[$i]." \n";
|
|
}
|
|
fwrite($faits, $heures_dispo_joueur."\n");
|
|
}
|
|
|
|
/* Disponibilités des joueurs vituels - Disponible tout le temps */
|
|
for($cpt=0;$cpt<$num_virt;$cpt++) {
|
|
$heures_dispo_joueur="";
|
|
for($i=0;$i<count($creneaux);$i++) {
|
|
$heures_dispo_joueur.="JOUEUR_V".$cpt." DISPONIBLE_CRENEAU ".$creneaux[$i]." \n";
|
|
}
|
|
fwrite($faits, $heures_dispo_joueur."\n");
|
|
}
|
|
|
|
for($cpt=0;$cpt<$pre_tour;$cpt++) {
|
|
$heures_dispo_joueur="";
|
|
for($i=0;$i<count($creneaux);$i++) {
|
|
$heures_dispo_joueur.="VAINQUEUR_1_".($cpt+1)." DISPONIBLE_CRENEAU ".$creneaux[$i]." \n";
|
|
}
|
|
fwrite($faits, $heures_dispo_joueur."\n");
|
|
}
|
|
|
|
for($cpt=0;$cpt<$tete_serie;$cpt++) {
|
|
$heures_dispo_joueur="";
|
|
for($i=0;$i<count($creneaux);$i++) {
|
|
$heures_dispo_joueur.="VAINQUEUR_2_".($cpt+1)." DISPONIBLE_CRENEAU ".$creneaux[$i]." \n";
|
|
}
|
|
fwrite($faits, $heures_dispo_joueur."\n");
|
|
}
|
|
|
|
fclose($faits);
|
|
echo "base faits ecrite.<br>";
|
|
|
|
echo "lancement des moteurs systeme expert pour création des tableaux et plannings.<br>";
|
|
$file="tab";
|
|
$dir="cer/tab/";
|
|
echo exec("./cer/compil -rf 1 bcc=".$dir.$file.".bcc reg=".$dir.$file.".reg fts=".$dir.$file.".fai err=".$dir.$file.".err1 m=n");
|
|
//echo exec("./cer/moteur bcc=".$dir.$file.".bcc fts=".$dir.$file.".fai res=".$dir.$file.".res err=".$dir.$file.".err2 t=4 s=c m=n");
|
|
echo "<br><br><br>";
|
|
$env=fopen("./cer/tab/test.env","r");
|
|
/* Type des faits générés par le système expert : */
|
|
/* TABLEAU_ID JOUEUR/EQUIPE_ID JOUE JOUEUR/EQUIPE_ID VAINQUEUR VQ_TOUR_NUM COURT COURT_ID CRENEAU JJMM_HHMM (match programme) */
|
|
/* TABLEAU_ID JOUEUR/EQUIPE_ID JOUE JOUEUR/EQUIPE_ID VAINQUEUR VQ_TOUR_NUM COURT (match non programmee - plus de creneaux dispo) */
|
|
$matches=array();
|
|
while(!feof($env)){
|
|
/* Lecture de 2 lignes dans le fichier */
|
|
$ligne=fgets($env);
|
|
$ligne2=fgets($env);
|
|
if($ligne != "") {
|
|
/* Création d'un nouveau match */
|
|
$match=array();
|
|
/* Recupère les données du match */
|
|
list($tableau,$joueur1,$attribut1,$joueur2,$attribut2,$vainqueur,$attribut3, $court)=explode(" ",$ligne);
|
|
list($rien, $attribut4, $creneau)=explode(" ",$ligne2);
|
|
echo "$tableau, $joueur1,$joueur2,$vainqueur, $court,$creneau<br>";
|
|
/* Réupère le tableau */
|
|
list($rien, $id_tableau)=explode("_", $tableau);
|
|
$['']=(int)$id_tableau;
|
|
/* Recupère le type et l'id du joueur 1 */
|
|
list($joueur,$type_joueur1,$num_couloir)=explode("_",$joueur1);
|
|
//echo $type_joueur1."<br />";
|
|
//echo strpos($type_joueur1,"V")."<br />";
|
|
if($joueur=="VQ") {
|
|
$['']="vainqueur";
|
|
$['']=$num_couloir;
|
|
}
|
|
else if(strpos($type_joueur1,"Q")===0) {
|
|
$['']="site";
|
|
$['']=intval(substr($type_joueur1,1));
|
|
}
|
|
else if(strpos($type_joueur1,"V")===0) {
|
|
$['']="virtuel";
|
|
$['']=intval(substr($type_joueur1,1));
|
|
}
|
|
else {
|
|
$['']="site";
|
|
$['']=intval($type_joueur1);
|
|
}
|
|
/* Recupère le type et l'id du joueur 2 */
|
|
list($joueur,$type_joueur2,$num_couloir)=explode("_",$joueur2);
|
|
if($joueur=="VQ") {
|
|
$['']="vainqueur";
|
|
$['']=$num_couloir;
|
|
}
|
|
else if(strpos($type_joueur2,'Q')===0) {
|
|
$['']="site";
|
|
$['']=intval(substr($type_joueur2,1));
|
|
}
|
|
else if(strpos($type_joueur2,'V')===0) {
|
|
$['']="virtuel";
|
|
$['']=intval(substr($type_joueur2,1));
|
|
}
|
|
else {
|
|
$['']="site";
|
|
$['']=intval($type_joueur2);
|
|
}
|
|
/* Recupere le vainqueur */
|
|
list($rien,$num_tour,$num_couloir)=explode("_",$vainqueur);
|
|
$['']=intval($num_tour);
|
|
$['']=intval($num_couloir);
|
|
/* Recupère le numero du court et le créneau où le match a lieu s'il est programmé*/
|
|
if($court!=" ") {
|
|
list($rien, $id_court)=explode("_",$court);
|
|
list($date, $heure)=explode("_",$creneau);
|
|
$jour=substr($date,0,2);
|
|
$mois=substr($date,2,2);
|
|
$h=substr($heure,0,2);
|
|
$m=substr($heure,2,2);
|
|
$annee=date("Y");
|
|
$['']=intval($id_court);
|
|
$['']="$jour/$mois/$annee";
|
|
$['']="$h:$m";
|
|
}
|
|
array_push($matches, $match);
|
|
}
|
|
}
|
|
|
|
//print_r($matches);
|
|
/* Enregistrement des matchs en base */
|
|
include ("enregistrementMatch.php");
|
|
|
|
function recup_debut_tranche_tableau($id_tableau, $db_connection) {
|
|
$requete="SELECT debut_tranche FROM tableaux WHERE id_tableau='$id_tableau'";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
$res=mysql_fetch_object($reponse);
|
|
return $res->debut_tranche;
|
|
}
|
|
|
|
function recup_fin_tranche_tableau($id_tableau, $db_connection) {
|
|
$requete="SELECT fin_tranche FROM tableaux WHERE id_tableau='$id_tableau'";
|
|
$reponse=mysql_query($requete,$db_connection) or die ("Erreur no".mysql_errno()." : ".mysql_error()."<br>");
|
|
$res=mysql_fetch_object($reponse);
|
|
return $res->fin_tranche;
|
|
}
|
|
?>
|