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 :
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 :
Citation:
|
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 :
Citation:
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 :
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 :
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