Bonjour tout le monde,

Je rencontre un gros problème avec mon application de réservation de salle.

Le problème se pose quand je veux supprimer une réservation.

La personne qui entre sur le site doit s'identifier, son login est récupéré dans une variable de session.

Lorsque le visiteur à choisi le jour, le mois, l'heure de début et l'heure de fin, il a le choix entre deux boutons avec deux actions différentes.

Le premier, réserver, reserve la salle, ça fonctionne.

Le second "supprimer une réservation" devrait supprimer la réservation si la valeur de rst2 est = à la valeur de la variable de session login.

Mais ça ne foncionne pas.

Quand j'arrive sur ma page principale, j'ai fais restponse.write(Session("loginprof") et cela me donne par exemple dfontain.

Donc ça prouve que la variable de session fonctionne.

Je choisi le jour, le mois, l'heure de début et l'heure de fin, j'appuie sur le bouton "Supprimer une réservation" et ce code s'enclenche :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
do while hfdebut2 <= hffin2
If len(hfdebut2) < 2 then
hfdebut2 = 0 & hfdebut2
End if
 
	checkSQL = "select [" & hfdebut2 & "] as debut from " & hfmois & " where jour = '" & hfjour  & "' "
	rst2.open checkSQL, "RSI"
 response.Write(checkSQL)
    'response.Write(rst2("debut"))
	'response.Write(Session("loginprof"))
	response.write ("rst2 vaut " & rst2("debut"))
	if rst2("debut") <> Session("loginprof") then
		%>
  <script language= "javascript">
  		history.go(-1)
		alert('Vous ne pouvez pas supprimer la réservation de quelqu\'un d\'autre, opération annulée') ;
		</script>
  <%
 
		response.End()
		exit do
	end if
 
	hfdebut2 = hfdebut2 + 1
	rst2.Close
loop
 
dim selecttable
selecttable = ""
selecttable = "update " & hfmois & " set " & hfdebut & " = '' WHERE jour =  '"& hfjour & "' "
'response.Write("ICI" & selecttable)
cnn.Execute(selecttable)
hffin = hffin - 1
If len(hffin) < 2 then
hffin = 0 & hffin
End If
selecttable = ""
selecttable = "update " & hfmois & " set " & hffin & " = '' WHERE jour =  '"& hfjour & "' "
'response.Write("ICI" & selecttable)
cnn.Execute(selecttable)
 
 
dim i 
'i = à la valeur de la variable hffin, variable qui contient la valeur du champ HTML de la liste déroulante hffin
'i est un compteur uniquement.
 
'response.Write("hffin - 1 vaut " & hffin)
'hffin = hffin - 1
i = hffin 
'response.Write(hffin)
'response.Write("i vaut " & i)
'fait tant que i (hffin) est supérieur à l'heure de début
do until i = cint(hfdebut)
'response.write(cInt(hfdebut))
'response.Write(hfdebut)
if i = "07" then
exit do
End if
'tu met à jour la table
'response.Write(i)
selecttable = "update " & hfmois & " set " & i & " = '' 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)
i = i-1
if len(i) = 1 then
i = "0" & i
End if
 
loop
 
Set rst2 = Nothing
 
%>
J'ai fais un response.write(checksql) et j'obtiens ceci si je réserve la salle le 11 mai de 8 à 13h00 :

dfontain select [08] as debut from mai where jour = '11' rst2 vaut dfontainselect [09] as debut from mai where jour = '11' rst2 vaut dfontainselect [10] as debut from mai where jour = '11' rst2 vaut dfontainselect [11] as debut from mai where jour = '11' rst2 vaut dfontainselect [12] as debut from mai where jour = '11' rst2 vaut dfontainselect [13] as debut from mai where jour = '11' rst2 vaut
Bizzarement, mon rst2 vaut n'a aucune valeur.

Est-ce que vous pourriez m'aider svp ?

Merci d'avance.

Edit: complément d'information :

Si j'essaie de supprimer une réservation faite par mvandamm quand la variable de session contient mvandamm, il efface tout mais le résultat du response.wrte(checksql) me donne ceci :

select [08] as debut from janvier where jour = '18' rst2 vaut stop
On dirait donc qu'il dit que rst2("debut") ne vaut pas "mvandamm" alors qu'il le vaut bien mais il continue quand même le code.

car

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
if rst2("debut") <> Session("loginprof") then
		response.write("stop")
		response.End()
		exit do
et il fait ce code qui est plus bas :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
dim selecttable
selecttable = ""
selecttable = "update " & hfmois & " set " & hfdebut & " = '' WHERE jour =  '"& hfjour & "' "
'response.Write("ICI" & selecttable)
cnn.Execute(selecttable)
hffin = hffin - 1
If len(hffin) < 2 then
hffin = 0 & hffin
End If
selecttable = ""
selecttable = "update " & hfmois & " set " & hffin & " = '' WHERE jour =  '"& hfjour & "' "
'response.Write("ICI" & selecttable)
cnn.Execute(selecttable)
 
 
dim i 
'i = à la valeur de la variable hffin, variable qui contient la valeur du champ HTML de la liste déroulante hffin
'i est un compteur uniquement.
 
'response.Write("hffin - 1 vaut " & hffin)
'hffin = hffin - 1
i = hffin 
'response.Write(hffin)
'response.Write("i vaut " & i)
'fait tant que i (hffin) est supérieur à l'heure de début
do until i = cint(hfdebut)
'response.write(cInt(hfdebut))
'response.Write(hfdebut)
if i = "07" then
exit do
End if
'tu met à jour la table
'response.Write(i)
selecttable = "update " & hfmois & " set " & i & " = '' 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)
i = i-1
if len(i) = 1 then
i = "0" & i
End if
 
loop
 
Set rst2 = Nothing
%>
Merci
beegees