Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/10/2006, 20h16   #1
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 240
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : Enseignement

Informations forums :
Inscription : mars 2004
Messages : 3 240
Points : 1 048
Points : 1 048
Par défaut Réservation d'une salle, savoir si les heures sont déjà occupées

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 :
1
2
3
4
5
6
7
8
if len(rst2("debut")) <> 0 then
%>
<script language= "javascript">
alert('La salle informatique est déjà réservée, merci de vérifier la disponibilité') ;
</script>
<%
response.End()
End if
Fin :

Code :
1
2
3
4
5
6
7
8
9
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
La chaîne SQL qui filtre les données et qui renomme les champs est la suivante :

Code :
checkSQL = "select [" & hfdebut & "] as debut, [" & hffin & "] as fin  from " & hfmois & " where jour = '" & hfjour & "' "
Ma question :

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
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2006, 20h45   #2
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 849
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 849
Points : 5 965
Points : 5 965
Salut,

Tu as une colonne par heure pour chaque jour?

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 07h00   #3
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 240
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : Enseignement

Informations forums :
Inscription : mars 2004
Messages : 3 240
Points : 1 048
Points : 1 048
Salut Immobilis,

Oui j'ai une collone pour chaque heure.

Tu crois que je pourrai faire ce que je veux ?

Merci
beegees
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 08h22   #4
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 807
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 807
Points : 3 005
Points : 3 005
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 :
1
2
3
4
5
 
Tant que debut <= fin
   select debut.....
   debut = debut + 1
Fin tant que
__________________
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)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 08h57   #5
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 240
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : Enseignement

Informations forums :
Inscription : mars 2004
Messages : 3 240
Points : 1 048
Points : 1 048
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 :
1
2
3
4
5
6
7
8
9
10
11
12
do while fin <= debut
fin = fin - 1
checkSQL = "select [" & hffin & "] as fin  from " & hfmois & " where jour = '" & hfjour & "' "
if len(rst2("fin")) <> 0 then
%>
<script language= "javascript">
alert('La salle informatique est déjà réservée, merci de vérifier la disponibilité') ;
</script>
<%
response.End()
End if
loop
Le problème est que ça à l'air de tourner fou.
Citation:
Active Server Pages (ASP) erreur 'ASP 0113'

Délai d'exécution du script dépassé

/RSI/recup_rsi.asp

Le délai maximal d'exécution d'un script a été dépassé. Vous pouvez changer cette limite en donnant une nouvelle valeur à la propriété Server.ScriptTimeout ou en changeant la valeur dans les outils d'administration d'IIS.

En plus, je sais pas où mettre le select car il me dit "Case attendu".

Qu'en penses-tu ?

Merci d'avance.

beegees
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 10h24   #6
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 240
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : Enseignement

Informations forums :
Inscription : mars 2004
Messages : 3 240
Points : 1 048
Points : 1 048
Re-bonjour,

Quand je fais ceci :

Code :
1
2
3
4
do while varhffin <= varhfdebut
varhffin = varhffin - 1
response.write("ok")
loop
varhffin correspond à la valeur récupérée par la liste déroulante de la page HTML.

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 :
1
2
3
4
5
6
 
Microsoft OLE DB Provider for ODBC Drivers erreur '80040e14' 
 
[Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans la clause FROM. 
 
/RSI/recup_rsi.asp, ligne 50
La ligne 50 correspond à :

Code :
rst2.open checkSQL, "RSI"
La chaîne SQL utilisée est la suivante (ligne 47):
Code :
1
2
 
checkSQL = "select [" & hfdebut & "] as debut, [" & hffin & "] as fin  from " & hfmois & " where jour = '" & hfjour & "' "
Qu'en pensez-vous ?

Merci d'avance pour votre aide.

beegees
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 10h37   #7
Membre éprouvé
 
Inscription : septembre 2004
Messages : 368
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 368
Points : 402
Points : 402
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.
Gwenn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 11h00   #8
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 240
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : Enseignement

Informations forums :
Inscription : mars 2004
Messages : 3 240
Points : 1 048
Points : 1 048
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'
Dès que je met la boucle, j'ai le message d'erreur.

Je ne pense donc pas que c'est dû à la chaîne SQL mais à cette boucle :

Code :
1
2
3
4
do while hffin <= hfdebut
hffin = hffin - 1
response.write("ok")
loop
response.write(hffin) me donne 14 par exemple et response.write(hfdebut) me donne 10, donc il y'a des valeurs dans ces deux variables.

Qu'en penses-tu ?

Merci
beegees
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 11h40   #9
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 240
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : Enseignement

Informations forums :
Inscription : mars 2004
Messages : 3 240
Points : 1 048
Points : 1 048
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 :
1
2
3
4
5
do until hffin <= hfdebut
hffin = hffin - 1
response.write(hffin)
 
loop
En sachant par exemple que hffin vaut 18, hfdebut vaut 14 il devrait afficher "17,16,15" mais il ne le fait pas, vous comprenez pourqoi ?

Merci pour votre précieuse aide.

beegees
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 12h15   #10
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 807
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 807
Points : 3 005
Points : 3 005
Re,

Et si tu fais
Code :
1
2
3
4
5
6
7
8
 
hffin2 = cInt(hffin)
hfdebut2 = cInt(hfdebut)
do until hffin2 <= hfdebut2
hffin2 = hffin2 - 1
response.write(hffin2)
 
loop
__________________
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)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 12h46   #11
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 240
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : Enseignement

Informations forums :
Inscription : mars 2004
Messages : 3 240
Points : 1 048
Points : 1 048
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
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 12h55   #12
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 240
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : Enseignement

Informations forums :
Inscription : mars 2004
Messages : 3 240
Points : 1 048
Points : 1 048
Re-salut PC75,

Voici ce que j'ai fais :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
hffin2 = cInt(hffin)
hfdebut2 = cInt(hfdebut)
do until hffin2 <= hfdebut2
hffin2 = hffin2 - 1
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
Ma question :

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:
select [10] as debut, [13] as fin from janvier where jour = '01' select [10] as debut, [13] as fin from janvier where jour = '01' select [10] as debut, [13] as fin from janvier where jour = '01'
C'est inquiétant car fin ne diminue pas de 1.

Qu'en penses-tu ?

Merci pour tout.

beegees
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 14h03   #13
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 807
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 807
Points : 3 005
Points : 3 005
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 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
hffin2 = cInt(hffin)
hfdebut2 = cInt(hfdebut)
do until hffin2 <= hfdebut2
hffin2 = hffin2 - 1

checkSQL = "select [" & hffin2 & "] ......

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 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)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 14h56   #14
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 240
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : Enseignement

Informations forums :
Inscription : mars 2004
Messages : 3 240
Points : 1 048
Points : 1 048
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:
select [10] as debut, [13] as fin from janvier where jour = '01' select [10] as debut, [12] as fin from janvier where jour = '01' select [10] as debut, [11] as fin from janvier where jour = '01' select [10] as debut, [10] as fin from janvier where jour = '01'
Chose importante :

11, 12 et 13 étaient différents de vide.

Qu'en penses-tu ?

Merci pour ton aide.

beegees
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 15h58   #15
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 807
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 807
Points : 3 005
Points : 3 005
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)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 16h29   #16
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 240
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : Enseignement

Informations forums :
Inscription : mars 2004
Messages : 3 240
Points : 1 048
Points : 1 048
Citation:
Envoyé par pc75
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.
Re,

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 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>
 <%
response.Buffer = true
dim hfjour
hfjour = request.form("hfjour")
'response.Write(hfjour)
dim hfmois
'récupère la valeur de la variable hdCI1 qui contient le nom du cours
hfmois = request.Form("hfmois")
'response.Write(hfmois)
dim hfdebut
'récupère la valeur de la variable hdCI1TH qui contient le nombre d'ECTS pour la théorie pour le 1er cours isolé.
'response.Write(hfdebut)
hfdebut = request.form("hfdebut")
'response.Write(hfdebut & "-")
dim hffin
hffin = request.form("hffin")
hffin = hffin - 1
'response.write(hffin)
'response.Write("la valeur de hffin est " & hffin )
dim hfuser
hfuser = request.form("hfuser")
'response.Write(hfuser & "-")
dim dateauj
dateauj = now
'response.write(dateauj)
dim rst
dim rst2
dim cnn
dim cnn2
dim checkSQL
set cnn2 = server.CreateObject("ADODB.CONNECTION")
set cnn = server.CreateObject("ADODB.CONNECTION")
set rst = Server.CreateObject("ADODB.Recordset")
set rst2 = server.CreateObject("ADODB.Recordset")
cnn.open "RSI"
cnn2.open "RSI"
mysql = "select * FROM  [RSI]"
rst.open mysql, "RSI"
'response.Write(checkSQL)
checkSQL = "select [" & hfdebut & "] as debut, [" & hffin & "] as fin  from " & hfmois & " where jour = '" & hfjour & "' "
'checkSQL = "select * from rsi"
'response.Write("checkSQL vaut " & checkSQL)
rst2.open checkSQL, "RSI"
'rs = rst2.fields.count
'response.Write("rs vaut " & rs)
%> 

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>

<body>
<%
'on vérifie ici si l'heure de début n'est pas déjà occupée.
'si tel est le cas, une alerte se lance et rien ne se passe, donc pas de mise à jour de la table (response.end)
if len(rst2("debut")) <> 0 then
%>
<script language= "javascript">
alert('La salle informatique est déjà réservée, merci de vérifier la disponibilité') ;
</script>
<%
response.End()
End if

'on vérifie ici si l'heure de fin n'est pas déjà occupée.
'si tel est le cas, une alerte se lance et rien ne se passe, donc pas de mise à jour de la table (response.end)
'Ce qui est important est qu'on vérife l'heure de début et l'heure de fin avant même de mettre la table à jour
'donc si l'un ou l'autre est pas disponible (debut ou fin) le traitement du code s'arrête.
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

'response.Write("hfdebut vaut" & hfdebut )
'response.Write("hffin vaut " & hffin)

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


dim selecttable
selecttable = ""
selecttable = "update " & hfmois & " set " & hfdebut & " = '" & hfuser & "' WHERE jour =  '"& hfjour & "' "
'response.Write("ICI" & selecttable)
cnn.Execute(selecttable)


'C'est ici qu'on entre les heues de fin jusqu'au début exemple réservation de 8 à 12 on entre 12,11,10,9
'dim checkhffin
'checkhffin = rst2("fin")
'dim i 
'i = à la valeur de la variable hffin, variable qui contient la valeur du champ HTML de la liste déroulante hffin
'i = hffin 

'fait tant que i (hffin) est supérieur à l'heure de début

'tu met à jour la table
'selecttable = "update " & hfmois & " set " & i & " = '" & hfuser & "' WHERE jour =  '"& hfjour & "' "
'response.Write(selecttable)
'il faut exécuter à chaque fois et non faire un update globale autrement ça plante
'cnn.Execute(selecttable)
'je retitre de i 1 (donc hffin = hffin - 1)

%>
</body>
</html>
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 16h40   #17
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 807
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 807
Points : 3 005
Points : 3 005
Re,

Citation:
Je dois faire genre cnn.execute(checkSQL) ?
Tu construis un select pour chaque heure dans ta boucle mais tu ne l'éxécutes pas.
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)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 21h57   #18
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 240
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : Enseignement

Informations forums :
Inscription : mars 2004
Messages : 3 240
Points : 1 048
Points : 1 048
Re,

PC75, merci pour ta patience légendaire.

J'ai donc édité mon code, ça donne ceci :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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 & "' "cnn.execute(checkSQL)
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
Je fais en sorte de réserver la salle pour qu'une heure entre le début et la fin soit déjà occupé.

Le code ne s'occupe pas de ce champ qui est différent de rien, il me donne ceci :

Citation:
select [12] as debut, [18] as fin from janvier where jour = '01' select [12] as debut, [17] as fin from janvier where jour = '01' select [12] as debut, [16] as fin from janvier where jour = '01' select [12] as debut, [15] as fin from janvier where jour = '01' select [12] as debut, [14] as fin from janvier where jour = '01' select [12] as debut, [13] as fin from janvier where jour = '01' select [12] as debut, [12] as fin from janvier where jour = '01'
Pourtant dans 13, j'ai mis un nom, il aurait normalement dû envoyer une alerte.

J'édite ici car supplément d'information important :

J'ai fais un responsse.write(rst2("fin")) et là j'obtiens :

Citation:
rst2 vaut
Aucune valeur dans le rst2...

Est-ce que tu vois pourquoi il ne l'a pas fait ?

Merci ta très précieuse aide.

beegees
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2006, 00h18   #19
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 849
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 849
Points : 5 965
Points : 5 965
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?
Code :
SELECT * FROM [3] WHERE JOUR = 4;
Je dois donc passer en revue les heures 11, 12 et 13.
Code :
1
2
3
4
5
6
7
8
9
 
FOR i = hfdebut2 to hffin2
       IF len(rs.fields(i).value) <> 0 THEN%>
              <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
NEXT
Qu'en penses-tu?
A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2006, 07h44   #20
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 240
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : Enseignement

Informations forums :
Inscription : mars 2004
Messages : 3 240
Points : 1 048
Points : 1 048
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:
SELECT * FROM [3] WHERE JOUR = 4;
Je présûme qu'on peut changer le 3 et le 4 par les ['" & hfdebut & "'].... ?

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
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h19.


 
 
 
 
Partenaires

Hébergement Web