ed1982
Messages postés14Date d'inscriptionsamedi 20 août 2005StatutMembreDernière intervention30 août 2007
-
23 août 2007 à 16:07
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 2012
-
23 août 2007 à 16:37
Voila,
J ai fait un systeme de reservation de salles. dans un formulaire l utilisateur choisi sa date: $new_jour_reservation, son heure de debut et fin de reservation $new_debut_reservation $new_fin_reservation. Ensuite les donnees sont recuperees et comparees avec celle de la bddafin d eviter que 2 pers aient reserve la salle le meme jour a la meme heure.
Mais voila, dans le while, le prog compare chaque ligne de la bdd avec les nouvelles donnees, comment puis je faire pour que ce systeme compare avec toute la bdd et ensuite et seulement ensuite, si la date est libre qu il l ecrive dans la bdd? vous avez compris?
Voici mon code qui meme si la date n est pas libre, il renvoit 'cette date est deja prise' et l inscrit dans la bdd. Grr
$new_jour_reservation = $_POST['new_jour_reservation'];
$new_debut_reservation = $_POST['new_debut_reservation'];
$new_fin_reservation = $_POST['new_fin_reservation'];
$idprofil = $_SESSION['idprofil'];
mysql_connect($db_host,$db_user,$db_pass) or die("Unable to connect to database");
mysql_select_db($database) or die( "Unable to select database");
$sql5="SELECT debut_reservation, fin_reservation, jour_reservation FROM salles";
$result5= mysql_query($sql5);
if($new_jour_reservation==$jour_reservation)
{
if($fin_reservation>$new_fin_reservation and $new_fin_reservation>$debut_reservation)
{header('Location: test.php');}
elseif($new_debut_reservation<$debut_reservation and $new_fin_reservation>$fin_reservation)
{header('Location: test.php');}
elseif($fin_reservation>$new_debut_reservation and $new_debut_reservation>$debut_reservation)
{header('Location: test.php');}
elseif($new_debut_reservation>$debut_reservation and $new_fin_reservation<$fin_reservation)
{header('Location: test.php');}
elseif($new_debut_reservation==$debut_reservation)
{header('Location: test.php');}
elseif($new_fin_reservation==$fin_reservation)
{header('Location: test.php');}
}
}
mysql_query("INSERT INTO salles(salles_id, debut_reservation, fin_reservation, profil_id, jour_reservation) VALUES ('', '$new_debut_reservation', '$new_fin_reservation', '2', '$new_jour_reservation')");
echo "Votre demande de reservation a bien ete prise en compte. Vous avez reserve la salle de reunion le $new_jour_reservation de $new_debut_reservation a $new_fin_reservation ";
?>
ce serait tres gentil a vous de m aider parce que la je suis completment bloque!!
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 20124 23 août 2007 à 16:28
D'après ta base, dans ta requête SELECT, tu devras faire SELECT truc FROM machin WHERE salle = $x and ((fin > $datededébutdetareservation and fin < $datedefindetareservation) or (debut > $datededébutdetareservation and debut < $datedefindetareservation))
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 20124 23 août 2007 à 16:23
Hello,
il ne faut pas faire tous ces calculs en php.
ce que tu dois faire, c'est faire un SELECT sur la salle à l'heure précise où tu la veux. Si MySQL te renvoie 0 ligne, tu fais ton INSERT, s'il y en a une, tu dis que c'est pris.
ed1982
Messages postés14Date d'inscriptionsamedi 20 août 2005StatutMembreDernière intervention30 août 2007 23 août 2007 à 16:30
ok je pensais pas pouvoir faire ca comme ca, mais visiblement, ca a l air de coller, je vais essayer ca maintenant. Merci pour ton aide si rapide Evangun
Vous n’avez pas trouvé la réponse que vous recherchez ?