Incrémentation d'une variable date

Incrémentation d'une variable date - PHP - Programmation

Marsh Posté le 18-04-2005 à 17:46:23    

Salut tout le monde,
 
J'ai une fonction d'insertion d'une reservation dans une table et je voudrais réaliser une autre fonction (utilisant la première) permettant d'insérer les réservations pour chaque jour (variable date_debut, date_fin).
 
ma fonction

Code :
  1. $i=$date_debut;
  2. while($i<$date_fin)
  3. {
  4.   ajoutReservation($i, $chambre);
  5.   $i++;
  6. }


 
Mais vous comprenez que cela ne peut marcher comme cela. Y aurait-il quelque chose de simple à faire ?


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
Reply

Marsh Posté le 18-04-2005 à 17:46:23   

Reply

Marsh Posté le 18-04-2005 à 18:09:09    

ya tout ce qu'il faut ici : http://fr.php.net/manual/fr/ref.datetime.php
 
mais il serait plus logique de gérer les reservations avec un intervalle de date plutôt que d'ajouter une reservation par jour

Reply

Marsh Posté le 18-04-2005 à 18:21:58    

Oui, je le conçois.
 
Cela va me complexifier grandement d'autres fonctions, mais mes tables auront beaucoup moins d'enregistrements.


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
Reply

Marsh Posté le 19-04-2005 à 16:36:08    

Bon, j'ai réussi a résoudre ce problème. J'ai modifié pas mal de mes fonctions pour que les réservations soient gérées avec 2 dates mais à celle qui suit, j'ai une erreur que je n'arrive pas à corriger.
 
Voici ma fonction :

Code :
  1. function ajoutReservation($date_debut, &date_fin, $chambre)
  2. {
  3. //Connexion à la base de données
  4. gite_connect();
  5. //Vérification de la chambre
  6. $verif_chambre = "SELECT * FROM chambres WHERE id_chambre = '".$chambre."'";
  7. $result_verif_chambre = mysql_query($verif_chambre);
  8. //Vérification des dates de réservation
  9.     $verif_reserv_d_debut = "SELECT * FROM events WHERE chambre_id = '".$chambre."' AND date_event_debut <= '".$date_debut."' AND date_event_debut >= '".$date_fin."'";
  10.     $verif_reserv_d_fin = "SELECT * FROM events WHERE chambre_id = '".$chambre."' AND date_event_fin >= '".$date_debut."' AND date_event_fin <= '".$date_fin."'";
  11. $result_reserv_debut = mysql_query($verif_reserv_d_debut);
  12. $result_reserv_fin = mysql_query($verif_reserv_d_fin);
  13. //Si la chambre existe et les dates sont bonnes  
  14. if (mysql_num_rows($result_verif_chambre)>0 and mysql_num_rows($result_reserv_debut)<1 and mysql_num_rows($result_reserv_fin)<1)
  15. {
  16.  //Requête d'insertion de la réservation
  17.  $query = "INSERT INTO events (date_event_debut, date_event_fin, reservation, chambre_id) VALUES ('".$date_debut."', '".$date_fin."',  'en_cours', '".$chambre."')";
  18.      $result = mysql_query($query);
  19.  echo "insertion d'une réservation réalisée ! La chambre ".$chambre." est réservée du ".$date_debut." au ".$date_fin.".";
  20. }
  21. //Sinon avertissement
  22. else
  23. {
  24.  echo "Insertion d'une réservation interrompue !<br> Aucune chambre correspondant aux données renseignées n'existe dans la base ou la chambre est déjà réservée ou en cours de réservation.";
  25. }
  26. }


 
Mon erreur est la suivante :
 

Code :
  1. Parse error: parse error, expecting `T_VARIABLE' in g:\easyphp\www\gite\gite_fonction.php on line 41


 
La ligne 41 correspond à la première ligne de la fonction.
 
Je n'ai pas vu de ; oublié, j'ai bien fermé les " ouverts... Je ne vois pas  :heink: .
 
Merci de votre aide  :jap:


Message édité par Manu la Science le 19-04-2005 à 16:50:01

---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
Reply

Marsh Posté le 19-04-2005 à 16:39:12    

&date-fin ???

Reply

Marsh Posté le 19-04-2005 à 16:41:00    

soju a écrit :

&date-fin ???


Je ne comprends pas ta question !
 
Que veux dire date_fin ? C'est la date du dernier jour de ma réservation...


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
Reply

Marsh Posté le 19-04-2005 à 16:43:02    

il manque pas un $ quelque part ?

Reply

Marsh Posté le 19-04-2005 à 16:44:32    

soju a écrit :

il manque pas un $ quelque part ?


Je l'ai vu, merci. Je vais essayé.


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
Reply

Marsh Posté le 19-04-2005 à 16:51:10    

J'ai modifié 2& en $ dans le code de la fonction présentée ci-dessus (rectifications en vert) mais l'erreur persiste...


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
Reply

Marsh Posté le 19-04-2005 à 16:54:06    

et celui qui est à la première ligne ?
et d'ou viennent ces & ? tu voulais utiliser des références ou quoi ?

Reply

Marsh Posté le 19-04-2005 à 16:54:06   

Reply

Marsh Posté le 19-04-2005 à 17:06:37    

Je sais pas pourquoi j'ai utilisé des & au lieu des $...
 
Je comprends pas mais merci, vraiment merci.
 
 :jap:  :jap:  :jap:  
 
Je me sens bête... :whistle:


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
Reply

Marsh Posté le 23-04-2005 à 00:27:11    

Code :
  1. //Vérification des dates de réservation
  2.     $verif_reserv_d_debut = "SELECT * FROM events WHERE chambre_id = '".$chambre."' AND date_event_debut <= '".$date_debut."' AND date_event_debut >= '".$date_fin."'";


un BETWEEN, ça serait plus simple que les date <= AND date >= ;)
 
puis y'a plein de fonction vachement bien dans mysql sur les dates :  
comme par exemple :  

Code :
  1. DATE_ADD('$date_sql', INTERVAL 1 MONTH)
  2. DATE_FORMAT


Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed