Files
resatennis_tyroltenn/www/tyroltenn/gestion_tournoi_resa.php

197 lines
10 KiB
PHP
Executable File

<?php
$id_admin=$_POST['id_admin'];
$club=$_POST['club'];
$id_tournoi=$_POST['id_tournoi'];
$jour=$_POST['jour'];
$mois=$_POST['mois'];
$annee=$_POST['annee'];
$nom_resa=$_POST['nom'];
$num_fft1=$_POST['num_fft1'];
$num_fft2=$_POST['num_fft2'];
$id_categorie=$_POST['categorie'];
$heure_debut=$_POST['heure_resa_debut'];
$min_debut=$_POST['min_resa_debut'];
$heure_fin=$_POST['heure_resa_fin'];
$min_fin=$_POST['min_resa_fin'];
if($jour<10) {$jour="0".$jour;}
include("conf.php");
/* Pour les joueurs administrateurs */
if(! isset($id_admin)) {
echo "erreur de connexion.";
sleep(2);
include("admin_login.php");
}
else {
/* Calcul des timestamp unix pour controle des horaires et controle des horaires*/
$horaire_debut=mktime($heure_debut, $min_debut, 0, $mois, $jour, $annee);
$horaire_fin=mktime($heure_fin, $min_fin, 0, $mois, $jour, $annee);
$horaires_ok=controleHoraires($horaire_debut, $horaire_fin);
/* tableau contenant les terrains à reserver */
$terrain_resa=0;
$message="";
/* nombre et noms des terrains du club */
if($horaires_ok==1) {
$terrains=$_POST['terrains'];
/* Pour chaque terrain contrôler que les heures passent */
for ($i=0;$i<count($terrains);$i++) {
$interv_occupe=0;
$id_terrain=$terrains[$i];
$requete="SELECT nom FROM reservable WHERE id_reservable='$id_terrain'";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$terrain=mysqli_fetch_object($reponse);
/* controle pour chaque demi-heure */
$ts_debut=mktime($heure_debut, $min_debut, 0, $mois, $jour, $annee);
$ts_fin=mktime($heure_fin, $min_fin, 0, $mois, $jour, $annee);
$ts_interv=$ts_debut;
while($interv_occupe==0 and $ts_interv<$ts_fin) {
$ts_fin_interv=$ts_interv+ (30 * 60);
$h_interv_deb=date("H:i:00", $ts_interv);
$h_interv_fin=date("H:i:00", $ts_fin_interv);
$requete="SELECT id_reservation, heure_resa_deb, heure_resa_fin FROM reservation WHERE date_resa LIKE '$annee-$mois-$jour' AND id_reservable LIKE '$id_terrain' AND ((heure_resa_deb >= '$h_interv_deb' AND heure_resa_deb<'$h_interv_fin') OR (heure_resa_fin>'$h_interv_deb' AND heure_resa_fin<='$h_interv_fin') OR (heure_resa_deb<='$h_interv_deb' AND heure_resa_fin>='$h_interv_fin'))";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$existe=mysqli_num_rows($reponse);
if($existe>0) {
$interv_occupe=1;
}
$ts_interv=$ts_fin_interv;
}
}
/* si l'intervalle est occupé */
if($interv_occupe==1) {
echo "<p>La r&eacute;servation n'a pas &eacute;t&eacute; prise en compte. Le terrain $terrain->nom est occup&eacute; &agrave; ces horaires ou la &eacute;servation n'a pas &eacute;t&eacute; valid&eacute;e par l'administrateur !</p>";
}
else {
$terrain_resa=$terrain_resa+1;
$debut="$heure_debut:$min_debut:00";
$fin="$heure_fin:$min_fin:00";
$date="$annee-$mois-$jour";
/* Match de double */
if($id_categorie==27 or $id_categorie==27 or $id_categorie==27) {
$requete="SELECT id_joueur FROM joueur WHERE numero_fft='$num_fft1'";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$joueur1=mysqli_fetch_object($reponse);
$requete="SELECT id_joueur1, id_joueur2 FROM equipes_double WHERE (id_joueur1=$joueur1->id_joueur OR id_joueur2=$joueur1->id_joueur) AND id_categorie='$id_categorie' AND id_tournoi='$id_tournoi'";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
if(mysqli_num_rows($reponse)>0) {
$equipe1=mysqli_fetch_object($reponse);
$requete="SELECT id_joueur FROM joueur WHERE numero_fft='$num_fft1'";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$joueur2=mysqli_fetch_object($reponse);
$requete="SELECT id_joueur1, id_joueur2 FROM equipes_double WHERE (id_joueur1=$joueur2->id_joueur OR id_joueur2=$joueur2->id_joueur) AND id_categorie='$id_categorie' AND id_tournoi='$id_tournoi'";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
if(mysqli_num_rows($reponse)>0) {
$equipe2=mysqli_fetch_object($reponse);
/* Inscription de la resa */
$id_terrain=$terrains[0];
$requete="INSERT INTO reservation(type, id_tournoi, id_categorie, type_reservation, id_joueur, id_joueur_adverse, heure_resa_deb, heure_resa_fin, date_resa, id_reservable, validation) VALUES('Tournoi', '$id_tournoi', '$id_categorie', '$nom_resa', '$joueur1->id_joueur','$joueur2->id_joueur', '$debut','$fin','$date', '$id_terrain', '1')";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$requete="SELECT MAX(id_reservation) FROM reservation";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$resa=mysqli_fetch_array($reponse);
/* Inscription des joueurs dans la base (table participant) */
if($num_fft1>0) {
$requete="INSERT INTO participant(id_joueur,id_reservation, a_prevenir) VALUES('$equipe1->id_joueur1','$resa[0]','Pas_Encore')";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$requete="INSERT INTO participant(id_joueur,id_reservation, a_prevenir) VALUES('$equipe1->id_joueur2','$resa[0]','Pas_Encore')";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
}
if($num_fft2>0) {
$requete="INSERT INTO participant(id_joueur,id_reservation, a_prevenir) VALUES('$equipe2->id_joueur1','$resa[0]','Pas_Encore')";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$requete="INSERT INTO participant(id_joueur,id_reservation, a_prevenir) VALUES('$equipe2->id_joueur2','$resa[0]','Pas_Encore')";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
}
}
else {
$message="Le joueur 2 n'est d&eacute;clar&eacute; dans aucune &eacute;quipe dans ce tournoi. R&eacute;servation annul&eacute;e";
}
}
else {
$message="Le joueur 1 n'est d&eacute;clar&eacute; dans aucune &eacute;quipe dans ce tournoi. R&eacute;servation annul&eacute;e";
}
}
/* Matchs de simple */
else {
/* Recherche des ids des joueurs */
$requete="SELECT id_joueur FROM joueur WHERE numero_fft='$num_fft1'";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
if(mysqli_num_rows($reponse)>0) {
$joueur1=mysqli_fetch_object($reponse);
$requete="SELECT id_joueur FROM joueur WHERE numero_fft='$num_fft2'";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
if(mysqli_num_rows($reponse)>0) {
$joueur2=mysqli_fetch_object($reponse);
/* Inscription de la resa */
$id_terrain=$terrains[0];
$requete="INSERT INTO reservation(type, id_tournoi, id_categorie, type_reservation, id_joueur, id_joueur_adverse, heure_resa_deb, heure_resa_fin, date_resa, id_reservable, validation) VALUES('Tournoi', '$id_tournoi', '$id_categorie', '$nom_resa', '$joueur1->id_joueur','$joueur2->id_joueur', '$debut','$fin','$date', '$id_terrain', '1')";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$requete="SELECT MAX(id_reservation) FROM reservation";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$resa=mysqli_fetch_array($reponse);
/* Inscription des joueurs dans la base (table participant) */
if($num_fft1>0) {
$requete="INSERT INTO participant(id_joueur,id_reservation, a_prevenir) VALUES('$joueur1->id_joueur','$resa[0]','Pas_Encore')";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
}
if($num_fft2>0) {
$requete="INSERT INTO participant(id_joueur,id_reservation, a_prevenir) VALUES('$joueur2->id_joueur','$resa[0]','Pas_Encore')";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
}
$message.="<p>La r&eacute;servation a &eacute;t&eacute; prise en compte pour le terrain $terrain->nom.</p>";
}
else {
$message="Le joueur 2 a un num&eacute;ro de licence inconnue dans la Base. R&eacute;servation annul&eacute;e";
}
}
else {
$message="Le joueur 1 a un num&eacute;ro de licence inconnue dans la Base. R&eacute;servation annul&eacute;e";
}
}
}
}
/* Les horaires ne sont pas bons */
else {
$message="Les horaires sont identiques ou l'horaire de fin se trouve avant l'horaire de d&eacute;but.";
}
}
/* Redirection vers la page de réservation spécial tournoi */
echo "<html xmlns='http://www.w3.org/1999/xhtml'>";
echo "<head>";
echo "<meta http-equiv='content-type' content='text/html; charset=ISO-8859-1' />";
echo "<meta http-equiv='refresh' content='1; url=planning.php?id_admin=$id_admin&club=$club&id_tournoi=$id_tournoi&jour=$jour&annee=$annee&mois=$mois />";
echo "<title>Redirection</title>";
echo "<meta name='robots' content='noindex,follow' />";
echo "</head><body>";
echo $message."\n";
echo "<p><a href='planning.php?id_admin=$id_admin&club=$club&id_tournoi=$id_tournoi&jour=$jour&annee=$annee&mois=$mois'>Redirection automatique vers la page de r&eacute;servartion</a></p>";
echo "</body></html>";
/* Les horaires sont au format Unix timestamp) */
function controleHoraires($debut, $fin) {
if($fin<=$debut) {
$res=0;
}
else if($debut>$fin) {
$res=0;
}
else {
$res=1;
}
return $res;
}
?>