197 lines
10 KiB
PHP
Executable File
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éservation n'a pas été prise en compte. Le terrain $terrain->nom est occupé à ces horaires ou la éservation n'a pas été validé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éclaré dans aucune équipe dans ce tournoi. Réservation annulée";
|
|
}
|
|
}
|
|
else {
|
|
$message="Le joueur 1 n'est déclaré dans aucune équipe dans ce tournoi. Réservation annulé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éservation a été prise en compte pour le terrain $terrain->nom.</p>";
|
|
}
|
|
else {
|
|
$message="Le joueur 2 a un numéro de licence inconnue dans la Base. Réservation annulée";
|
|
}
|
|
}
|
|
else {
|
|
$message="Le joueur 1 a un numéro de licence inconnue dans la Base. Réservation annulé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é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é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;
|
|
}
|
|
|
|
?>
|