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 25/10/2006, 10h14   #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 rst étrangement vide

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
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2006, 12h35   #2
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
Personne pour m'aider

J'avoue que je désespère un peu car ça fonctionnait et maintenant ça fonctionne plus.

C'est étrange l'informatique.

Merci d'avance pour votre aide.

beegees
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web