Pb de période...

Répondre
Astyax
le 26/06/2004 à 09:50
Astyax
Salut à tous :)
Je suis en train de tenter de créer un script de réservation.

J'ai une table reservation avec un id, le jour, le mois, l'annee, l'heure de debut et l'heure de fin.
Ok.
Ce que j'aimerai faire, et je n'y arrive pas complètement, c'est que si un gars veut réserver, par exemple, de11h à 14h et qu'il y a déjà une réservation de 9h à 12h, il reçoive un message comme quoi c'est déjà réservé.

J'ai fait ça mais ça marche pas.

http://www.lephpfacile.com/wall/lire_wall.php?wall=1494
Il doit y avoir un truc tout bête mais j'en sais rien. J'ai vu que dans "Les astuces", il y avait interval, est-ce que c'est la solution??? Bon, je continue de chercher, mais si quelqu'un avait une idée, j'avoiue que je ne cracherai pas dessus :))
Vivants, vous êtes vivants...
C_Kirby
le 26/06/2004 à 11:32
C_Kirby
Salut !

Tu pourrais peut-être calculer la différence de l'heure de début sur tous les enregistrements (avec un while) et ajouter 1 a l'heure de début (toujours de tous les enregistrements) et regarder si l'heure qu'on obtient correspond à l'heure de début de la reservation que tu veux inserer ou pas, et sinon, tu continue a rajouter jusqu'a ce que la différence arrive à 0 (en fait tu enleves 1 a la différence mais tu rajoutes 1 à l'heure de début de chaque enregistrement)

Ca peut marcher tu peux essayer :)
C_Kirby
C_Kirby
le 26/06/2004 à 11:35
C_Kirby
Ah, j'ai oublié de te dire :
Fais un WHERE avec le jour de la reservation sinon ca va pas marcher :p
C_Kirby
Astyax
le 26/06/2004 à 16:20
Astyax
Coucou C_Kirby.
Merci pour ton aide, c'est très gentil. Le problème c'est que je pige pas tout. Pourquoi avoir besoin d'incrémenter ? Désolé, je suis vraiment nul...
Vivants, vous êtes vivants...
C_Kirby
le 27/06/2004 à 13:12
C_Kirby
Euh, je suis pas vraiment doué pour expliqué, mais je vais te montrer un exemple :

Un client réserve une salle (par exemple) de 11h à 14h.

Un autre arrive et souhaite réserver la salle de 12h à 15h.

Donc comme ca c'est pas évident pour la bdd de savoir si la salle à déjà été réservée ou pas.

Donc il suffit de faire 14 - 11 = 3. Le client à donc réservé la table pendant trois heures.

Apres il faut enlever 1 à 3 (ce qui nous donne 2) et rajouter 1 à 11 (ce qui nous donne 12) et vérifier les deux heures de début. Ici, la bdd verra que la salle à donc déjà été réservée. Mais si par exemple les deux heures de début ne correspondent pas, il suffit de rajouter 1 à l'heure de début (12 + 1 = 13) enlever 1 à la différence (2 - 1 = 1) et de continer à vérifier.

Mais pourquoi calculer la différence ?

Tout simplement pour pas que l'heure de début soit égale à l'heure de fin, puis supérieur. Donc si la différence est égale à 0, il faut arrêter de calculer, et insérer la réservation dans la table.

Il ne faut pas oublier d'enlever 1 à la différence avant les calculs pour que l'heure de début ne soit pas égale à l'heure de fin.

Voilà, j'espère que tu m'as compris :)
C_Kirby
Astyax
le 27/06/2004 à 17:12
Astyax
Merci encore Mossieur, je vais essayer de bouclé tout ça. Je suis pas sûr d'y arriver mais je vais essayer. En tout cas, c'est vraiment gentil d'avoir pris le temps de m'expliquer. Merci encore :))
Vivants, vous êtes vivants...
Dark Elf
le 28/06/2004 à 19:15
Dark Elf
Dis Kirby, si t'arrive à faire des trucs comme ça, c naturel, c l'entrainement, ou alors c'est parce que tu as déjà traité des trucs du genre et que finalement c'est toujours les même systemes ?
HELLSPLAYERS FOREVER
bibi
le 28/06/2004 à 20:08
bibi
jme suis posé la mm kestion pcke gt sur le cul a vré dire smiley
commit suicide
Astyax
le 29/06/2004 à 08:17
Astyax
Moi je suis toujours sur le cul smiley
Vivants, vous êtes vivants...
Répondre
LoadingChargement en cours