|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||
|
Membre Expert
![]() David Vincent (l'homme qui a vu les extra-terrestres)Développeur Web Inscription : mars 2004 Messages : 3 240 ![]() |
Bonsoir tout le monde,
J'ai une page asp qui récupère dans des variables des données choisies par des listes déroulantes. C'est en fait la réservation d'une salle et les données récoltées sont : Jour de la réservation, mois de la réservation, heure de début et heure de fin de la réservation et nom de l'utilisateur qui réserve. Quand une personne réserve la salle, le code de ma page envoi sélectionne la table du mois, ensuite le jour, et met dans les différents champs de la table l'heure de début jusqu'à l'heure de fin. Ex: Monsieur Durand réserve la salle le 01 janvier de 12 à 16h00, le code réserve alors la table janvier, sélectionne le jour 01 et ensuite met durand dans 12, 13, 14 et 15 (pas 16 car à 15h59 la salle est libre pour quelqu'un d'autre) Il y'a donc une grosse partie du travail qui est fait. Maintenant, si une personne réserve la salle le 01 janvier, j'aimerais d'abord vérifier que la salle n'est pas déjà réservé par quelqu'un d'autre. Pour ce faire, j'ai trouvé le moyen de savoir si le mois, le jour et l'heure de début est déjà prise, idem pour l'heure de fin. Voici le code pour savoir si l'heure de début et l'heure de fin est déjà prise : Début : Code :
Code :
Code :
checkSQL = "select [" & hfdebut & "] as debut, [" & hffin & "] as fin from " & hfmois & " where jour = '" & hfjour & "' " Comment savoir si les heures entre l'heure de début et l'heure de fin sont déjà occupées ? C'est là que je coince et ça fait maintenant presque deux semaines. Je perds vraiment beaucoup de temps sur la conception de cette application. Je vous remercie d'avance pour l'aide que vous m'apporterez. beegees |
||||
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : mars 2004 Messages : 5 849 ![]() |
Salut,
Tu as une colonne par heure pour chaque jour? A+ |
|
00
|
|
|
#3 |
|
Membre Expert
![]() David Vincent (l'homme qui a vu les extra-terrestres)Développeur Web Inscription : mars 2004 Messages : 3 240 ![]() |
Salut Immobilis,
Oui j'ai une collone pour chaque heure. Tu crois que je pourrai faire ce que je veux ? Merci beegees |
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 807 ![]() |
Re,
Tu te souviens de ce que je t'avais dit ? Les problèmes commencent ! Si tu avais une table de ce genre : IdUser LaDate HDeb Hfin Tu faisais un select qui vérifie pour la date que les heures saisies ne chevauchent pas les heures dans ta table. Mais bon, pour ta question, je ferai une boucle dans ce genre là : Code :
__________________
Par principe, je ne réponds pas aux messages URGENT. Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu) |
||
|
|
00
|
|
|
#5 | |||
|
Membre Expert
![]() David Vincent (l'homme qui a vu les extra-terrestres)Développeur Web Inscription : mars 2004 Messages : 3 240 ![]() |
Salut PC75,
Merci pour ton pseudo-code et pour ton avertissement J'ai suivi ton conesil niveau pseudo-code et voici ce que ça donne : Code :
Citation:
En plus, je sais pas où mettre le select car il me dit "Case attendu". Qu'en penses-tu ? Merci d'avance. beegees |
|||
|
|
00
|
|
|
#6 | ||||||
|
Membre Expert
![]() David Vincent (l'homme qui a vu les extra-terrestres)Développeur Web Inscription : mars 2004 Messages : 3 240 ![]() |
Re-bonjour,
Quand je fais ceci : Code :
J'ai mis le suffixe var devant les variables car j'avais donné le même nom aux tables et à mes variables. Et voici l'erreur que j'obtiens : Code :
La chaîne SQL utilisée est la suivante (ligne 47): Code :
Merci d'avance pour votre aide. beegees |
||||||
|
|
00
|
|
|
#7 |
|
Membre éprouvé
![]() Inscription : septembre 2004 Messages : 368 ![]() |
Salut,
j'en pense qu'il ne reconnait pas ta chaine SQL comme valide. Fais un response.write de checkSQL et mets l'ouverture en commentaire, ca t'affichera la chaine, tu pourra vérifier d'eventuelles erreurs de syntaxe. |
|
|
00
|
|
|
#8 | ||
|
Membre Expert
![]() David Vincent (l'homme qui a vu les extra-terrestres)Développeur Web Inscription : mars 2004 Messages : 3 240 ![]() |
Salut Gwenn,
Merci pour ta réponse. Quand je ne met pas la boucle, le response.write me donne ceci : Code :
select [11] as debut, [13] as fin from janvier where jour = '01' Je ne pense donc pas que c'est dû à la chaîne SQL mais à cette boucle : Code :
Qu'en penses-tu ? Merci beegees |
||
|
|
00
|
|
|
#9 | ||
|
Membre Expert
![]() David Vincent (l'homme qui a vu les extra-terrestres)Développeur Web Inscription : mars 2004 Messages : 3 240 ![]() |
Bon,
J'ai changé do while par do until et là ça va mieux (plus de message d'erreur, de tampon ou de chaîne SQL). Par contre la boucle n'est pas prise en compte. Code :
Merci pour votre précieuse aide. beegees |
||
|
|
00
|
|
|
#10 | ||
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 807 ![]() |
Re,
Et si tu fais Code :
__________________
Par principe, je ne réponds pas aux messages URGENT. Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu) |
||
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() David Vincent (l'homme qui a vu les extra-terrestres)Développeur Web Inscription : mars 2004 Messages : 3 240 ![]() |
Re,
Tu es vraiment, très très fort Pc75. La boucle s'enclenche maintenant. Donc, maintenant, je dois essayer de mettre dans cette boucle les instructions qui check si les cases sont vides. Je te recontacte dès que c'est fait. Mes plus grand respects à toi. beegees |
|
|
00
|
|
|
#12 | |||
|
Membre Expert
![]() David Vincent (l'homme qui a vu les extra-terrestres)Développeur Web Inscription : mars 2004 Messages : 3 240 ![]() |
Re-salut PC75,
Voici ce que j'ai fais : Code :
Dois-je insérer une chaîne SQL ? Il me semble qu'il n'est pas sensé connaître rst2("fin") ? J'ai fais après hffin2 ! hffin2 -1 un response.write(checkSQL) et voici le résultat : Citation:
Qu'en penses-tu ? Merci pour tout. beegees |
|||
|
|
00
|
|
|
#13 | ||
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 807 ![]() |
Re,
Dans ta boucle, tu détermine les heures comprises dans la plage. Donc, il faut que tu fasses un select avec la nouvelle valeur hffin2 à l'intérieur de ta boucle pour tester sur la nouvelle colonne. Code :
__________________
Par principe, je ne réponds pas aux messages URGENT. Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu) |
||
|
|
00
|
|
|
#14 | |
|
Membre Expert
![]() David Vincent (l'homme qui a vu les extra-terrestres)Développeur Web Inscription : mars 2004 Messages : 3 240 ![]() |
Salut PC75,
Merci pour ta réponse. J'ai fais ce que tu as dis : hffin2 = cInt(hffin) hfdebut2 = cInt(hfdebut) do until hffin2 <= hfdebut2 hffin2 = hffin2 - 1 checkSQL = "select [" & hfdebut2 & "] as debut, [" & hffin2 & "] as fin from " & hfmois & " where jour = '" & hfjour & "' " 'response.Write(checkSQL) if len(rst2("fin")) <> 0 then 'response.write(rst2("fin")) %> <script language= "javascript"> alert('La salle informatique est déjà réservée, merci de vérifier la disponibilitée') ; </script> <% response.End() End if loop Par contre, je présume que c'est pas normal qu'il ne m'envoie pas une alerte lorsqu'il rencontre une case non vide. Exemple : X réserve la salle de 10 à 15 Y la réserve la même date de 11 à 14 Dans ce cas, il devrait réagir, mais il réagit pas. Voci la response.write(checkSQL) : Citation:
11, 12 et 13 étaient différents de vide. Qu'en penses-tu ? Merci pour ton aide. beegees |
|
|
|
00
|
|
|
#15 |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 807 ![]() |
Re,
Dans ta boucle, tu génères ta requête SQL, mais tu ne l'éxécutes pas. Donc, tu ne peux pas tester les valeurs.
__________________
Par principe, je ne réponds pas aux messages URGENT. Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu) |
|
|
00
|
|
|
#16 | |||
|
Membre Expert
![]() David Vincent (l'homme qui a vu les extra-terrestres)Développeur Web Inscription : mars 2004 Messages : 3 240 ![]() |
Citation:
Je ne comprends pas bien ce que tu veux dire. Je dois faire genre cnn.execute(checkSQL) ? Il me semble que je l'ai déjà fait ça. Je laisse mon code, pourrais-tu stp regarder si je l'ai fais ? J'ai mis la partie du code en rouge. Merci et désolé.... beegees Code :
|
|||
|
|
00
|
|
|
#17 | |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 807 ![]() |
Re,
Citation:
Si tu veux pouvoir lire le résultat de ces requêtes, il faut que tu les éxécutes pour récupérer les valeurs dans un recordset non ? Alors il faut que tu fasses le cnn.execute et ensuite, tu testes.
__________________
Par principe, je ne réponds pas aux messages URGENT. Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu) |
|
|
|
00
|
|
|
#18 | ||||
|
Membre Expert
![]() David Vincent (l'homme qui a vu les extra-terrestres)Développeur Web Inscription : mars 2004 Messages : 3 240 ![]() |
Re,
PC75, merci pour ta patience légendaire. J'ai donc édité mon code, ça donne ceci : Code :
Le code ne s'occupe pas de ce champ qui est différent de rien, il me donne ceci : Citation:
J'édite ici car supplément d'information important : J'ai fais un responsse.write(rst2("fin")) et là j'obtiens : Citation:
Est-ce que tu vois pourquoi il ne l'a pas fait ? Merci ta très précieuse aide. beegees |
||||
|
|
00
|
|
|
#19 | ||
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : mars 2004 Messages : 5 849 ![]() |
Waaa, déjà deux pages! Et ben...
Pff chuis paresseux. Je balance mon idée sans lire. On verra bien Bon machin veut réserver la salle au mois de mars le jour 4 de 11 à 14H. Comment vérifier? Je dois donc passer en revue les heures 11, 12 et 13. Code :
A+ |
||
|
00
|
|
|
#20 | |
|
Membre Expert
![]() David Vincent (l'homme qui a vu les extra-terrestres)Développeur Web Inscription : mars 2004 Messages : 3 240 ![]() |
Bonjour Monsieur le Modérateur
ça fait longtemps que j'avais plus eu une réponse aussi complète de ta part C'est pour rire Bon, merci pour ta réponse qui me semble aussi intéressante que celle de PC75. Mais, car il y'a un mais, quand tu mets ceci : Citation:
Je vais le tester dès que j'arrive au boulot et je te dis quoi. Une très bonne journée à toi et merci encore. beegees |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com