Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3000 connectés 

  FORUM HardWare.fr
  Programmation
  ASP

  [ASP] Qu'est ce qui ne marche pas dans mon code ? ( simple )

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ASP] Qu'est ce qui ne marche pas dans mon code ? ( simple )

n°782021
seb-belfor​t
Posté le 30-06-2004 à 09:05:22  profilanswer
 

Comme ça ça marche :
 

Code :
  1. <!-- #include file="_connexion.asp"-->
  2. <%
  3. dim nb
  4. nb=0
  5. SQL="SELECT * FROM abonnes WHERE email='" & Request.form("email" ) & "'"
  6. Set RS = server.createobject("ADODB.Recordset" )
  7. RS.Open SQL,Conn , 3, 3
  8. RS.Move(Ndeb)
  9. while not RS.eof
  10.    ' affiche le champ
  11.    nb=1
  12.    ' fiche suivante
  13.    RS.MOVENEXT
  14. wend
  15. RS.close
  16. Response.redirect "infospersos.asp?email=" & Request.form("email" )
  17. %>


 
Comme ça ça marche plus :
 

Code :
  1. <!-- #include file="_connexion.asp"-->
  2. <%
  3. dim nb
  4. nb=0
  5. SQL="SELECT * FROM abonnes WHERE email='" & Request.form("email" ) & "'"
  6. Set RS = server.createobject("ADODB.Recordset" )
  7. RS.Open SQL,Conn , 3, 3
  8. RS.Move(Ndeb)
  9. while not RS.eof
  10.    ' affiche le champ
  11.    nb=1
  12.    ' fiche suivante
  13.    RS.MOVENEXT
  14. wend
  15. RS.close
  16. if nb=0
  17. Conn.execute("INSERT INTO abonnes (email) VALUES ('" & Request.form("email" ) & "') " )
  18. end if
  19. Response.redirect "infospersos.asp?email=" & Request.form("email" )
  20. %>


 
QQn peut m"expliquer pkoi ? merci d'avance!

mood
Publicité
Posté le 30-06-2004 à 09:05:22  profilanswer
 

n°782025
seb-belfor​t
Posté le 30-06-2004 à 09:12:45  profilanswer
 

j'ai rajouté ça en fait :  
 

Code :
  1. if nb=0
  2.      Conn.execute("INSERT INTO abonnes (email) VALUES ('" & Request.form("email" ) & "') " )
  3.   end if

n°782056
Flyman30
Posté le 30-06-2004 à 09:46:44  profilanswer
 

nb= nb + 1  
 
toi tu lui dit nb=1 et après tu recherche nb=0 ???

n°782067
seb-belfor​t
Posté le 30-06-2004 à 09:55:29  profilanswer
 

oui ça veut dire que si il y a une ligne qui correspond a cette requete, je passe nb à 1 donc je ne fais pas l'insertion plus bas, ça revient au meme je pense de faire nb=nb+1 ( j'ai essayé et ça ne passe pas non plus )

n°782072
JihemAir
Je sais pas
Posté le 30-06-2004 à 10:00:17  profilanswer
 

N'est ce pas:

Code :
  1. if nb=0 then


 
En tout cas, c'est comme ça en VB.
 
Edit: le gras n'a pas pris...


Message édité par JihemAir le 30-06-2004 à 10:00:59
n°782075
seb-belfor​t
Posté le 30-06-2004 à 10:03:19  profilanswer
 

merci pour ta réponse j'ai essayé mais ça passe tjrs pas :(

n°782087
JihemAir
Je sais pas
Posté le 30-06-2004 à 10:13:16  profilanswer
 

Essaie en passant par une variable:
 
strSQL = "INSERT INTO abonnes (email) VALUES ('" & Request.Form("email" ) & "') "
Conn.Execute strSQL

n°782090
seb-belfor​t
Posté le 30-06-2004 à 10:15:55  profilanswer
 

tjr rien :( mais j'ai l impression que mon erreur est dans le if / end if pq qd je fais :

Code :
  1. if nb=0 
  2.          nb=1 
  3.     end if


 
ça ne marche pas non plus ...

n°782093
Lord II
PIB2000
Posté le 30-06-2004 à 10:17:18  profilanswer
 

La structure du if c'est
 

Code :
  1. if condition then
  2.     instructions
  3. else
  4.      instructions
  5. end if


 
j'ai un petit doute sur le end if, à savoir si ce n'est pas en un seul mot ??


---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°782102
seb-belfor​t
Posté le 30-06-2004 à 10:22:04  profilanswer
 

si j'attache le end et le if ce n'est plus reconu comme une fonction par mon interpreteur html ...

mood
Publicité
Posté le 30-06-2004 à 10:22:04  profilanswer
 

n°782104
JihemAir
Je sais pas
Posté le 30-06-2004 à 10:23:06  profilanswer
 

Puisqu'on te dis:
if b=0 then

n°782105
Lord II
PIB2000
Posté le 30-06-2004 à 10:23:38  profilanswer
 

Par contre le then est obligatoire. Ce serait bien également si tu nous donnait les messages d'erreur


---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°782107
seb-belfor​t
Posté le 30-06-2004 à 10:25:13  profilanswer
 

JiHemAir et Lord ii > oui pour le then j'ai testé et repondu a JiHemAir que ça ne fonctionnait pas plus ...

n°782108
seb-belfor​t
Posté le 30-06-2004 à 10:26:10  profilanswer
 

Impossible d'afficher la page  
Il y a un problème avec la page que vous essayez d'atteindre ; elle ne peut pas être affichée.  
 
--------------------------------------------------------------------------------
 
Essayez de la manière suivante :
 
Ouvrez la page de démarrage www.****.fr et recherchez des liens vers les informations voulues.  
Cliquez sur le bouton  Actualiser ou réessayez ultérieurement.
 
Cliquez sur  Rechercher pour trouver des informations sur Internet.  
Vous pouvez également consulter une liste de sites apparentés.  
 
 
HTTP 500 - Erreur interne de serveur  
Internet Explorer


Message édité par seb-belfort le 30-06-2004 à 10:26:40
n°782123
JihemAir
Je sais pas
Posté le 30-06-2004 à 10:32:52  profilanswer
 

seb-belfort a écrit :

JiHemAir et Lord ii > oui pour le then j'ai testé et repondu a JiHemAir que ça ne fonctionnait pas plus ...

Oui mais bon, faut le mettre quand même. As tu essayé en passant par une variable ?

n°782129
seb-belfor​t
Posté le 30-06-2004 à 10:34:09  profilanswer
 

oui je l'ai laissé je pense aussi qu'il faut le mettre, j'ai essayé aussi en passant par une variable

n°782133
JihemAir
Je sais pas
Posté le 30-06-2004 à 10:37:20  profilanswer
 

T'as les droits pour écrire dans ta base ?

n°782138
seb-belfor​t
Posté le 30-06-2004 à 10:44:24  profilanswer
 

oui parceque je l'ai fait sur une autre page ...

n°782139
seb-belfor​t
Posté le 30-06-2004 à 10:46:04  profilanswer
 

si je fais ça ça ne marche pas non plus :

Code :
  1. <!-- #include file="_connexion.asp"-->
  2. <%
  3. dim nb
  4. nb=0
  5. SQL="SELECT * FROM abonnes WHERE email='" & Request.form("email" ) & "'"
  6. Set RS = server.createobject("ADODB.Recordset" )
  7. RS.Open SQL,Conn , 3, 3
  8. RS.Move(Ndeb)
  9. ' tant qu'il reste des fiches
  10. while not RS.eof
  11.    nb=1
  12.    RS.MOVENEXT
  13. wend
  14. if nb=0 then
  15. Response.write("ok" )
  16. end if
  17. Response.redirect "infospersos.asp?email=" & Request.form("email" )
  18. %>

n°782144
Lord II
PIB2000
Posté le 30-06-2004 à 10:49:26  profilanswer
 

Il faudrait surtout que tu obtiennes des messages d'erreurs plus explicites, je pense que cela devrait te faciliter la vie


---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°782147
Arjuna
Aircraft Ident.: F-MBSD
Posté le 30-06-2004 à 10:50:11  profilanswer
 

Déja, ca plante où et avec quel message d'erreur ?
 
Ensuite, n'utilise JAMAIS la méthode .move(), surtout avec le mode de connection qui est utilisé en ASP, dans un programme VB avec le bon type de recordset, à la limite...
 
A la place, met :
 
errorMsg = ""
for i = 1 to Ndeb
   if rs.EOF then
      errorMsg = "Fin du recordset dépassé !"
      exit for
   else
      rs.MoveNext
   end if
next
 
if errorMsg <> "" then
   rs.Close
   Response.Write errorMsg
   Response.End
end if


Message édité par Arjuna le 30-06-2004 à 10:50:22
n°782149
Arjuna
Aircraft Ident.: F-MBSD
Posté le 30-06-2004 à 10:51:28  profilanswer
 

Pour avoir un vrai message d'erreur :
1) Sur IIS, active l'affichage des messages d'erreur (normalement c'est par défaut)
2) Dans IE, désactive les messages d'erreur simplifiés (outils > option internet > avancées)


Message édité par Arjuna le 30-06-2004 à 10:51:40
n°782152
JihemAir
Je sais pas
Posté le 30-06-2004 à 10:54:00  profilanswer
 

A mon avis, RS.Move(Ndeb) ne sert à rien. (Ndeb) n'est pas déclaré. En plus, si RS est vide, tu plantes là.
Ensuite, je ferai:
Do While not RS.eof
  RS.MoveNext
Loop
 
Edit: Barbecued !


Message édité par JihemAir le 30-06-2004 à 10:56:03
n°782160
seb-belfor​t
Posté le 30-06-2004 à 10:57:46  profilanswer
 

ouf merci j'ai les messages d'erreur :
 
ADODB.Recordset error '800a0bcd'  
 
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.  
 
/newsletter/validation.asp, line 8  
 
( dslé je suis en mini reunion en mm tps )

n°782168
Lord II
PIB2000
Posté le 30-06-2004 à 11:01:16  profilanswer
 

Je suis de l'avis de JiHemAir et de Arjuna, il faut supprimer ce rs.move(Ndeb) se situant avant la boucle while.


---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°782173
JihemAir
Je sais pas
Posté le 30-06-2004 à 11:03:16  profilanswer
 

Il faut aussi tester ton recordset après la lecture:
If Rs.BOF And Rs.EOF Then --> Rs est vide.
  Requete Ajout

n°782182
Arjuna
Aircraft Ident.: F-MBSD
Posté le 30-06-2004 à 11:12:45  profilanswer
 

sinon euh...
 
"select count(*) nbA from abonnes where email = '" & Replace(Request.Form("email" ), "'", "''" ) & "'"
 
Ensuite, pas besoin de tester quoi que ce soit...
 
if rs("nbA" ) = 0 then
   cnx.execute "insert ..."
else
   response.write "t'es déjà inscrit abrutis !"
end if
 
 
 
En effet, count() retournera toujours une ligne, même s'il n'y a rien :
 
select count(*) from dual where 1 = 0
 
=> Ca retourne une ligne avec 0, alors que DUAL est une table fictive, et que 1 = 0 ca a tendance a toujours être faux...


Message édité par Arjuna le 30-06-2004 à 11:19:13
n°782183
Arjuna
Aircraft Ident.: F-MBSD
Posté le 30-06-2004 à 11:14:06  profilanswer
 

Pour la petite histoire, en plus ce sera infiniment plus rapide.

n°782187
seb-belfor​t
Posté le 30-06-2004 à 11:15:15  profilanswer
 

Merci ça marche grace a vous tous !! super merci encore :

Code :
  1. <!-- #include file="_connexion.asp"-->
  2. <%
  3. SQL="SELECT * FROM abonnes WHERE email='" & Request.form("email" ) & "'"
  4. Set RS = server.createobject("ADODB.Recordset" )
  5. RS.Open SQL,Conn , 3, 3
  6. ' tant qu'il reste des fiches
  7. Do While not RS.eof
  8.   RS.MoveNext
  9. Loop
  10. If Rs.BOF And Rs.EOF Then
  11. Conn.execute("INSERT INTO abonnes (email) VALUES ('" & Request.form("email" ) & "') " )
  12. end if
  13. Response.redirect "infospersos.asp?email=" & Request.form("email" )
  14. %>

n°782190
seb-belfor​t
Posté le 30-06-2004 à 11:16:30  profilanswer
 

Arjuna > merci pour ta solution , si j'ai le temps j'esserai de faire comme ça ...

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASP

  [ASP] Qu'est ce qui ne marche pas dans mon code ? ( simple )

 

Sujets relatifs
Validation de code HTML : comprend pas là...[ASP] [Résolu] Problème d'actualisation
[PHP] Session - marche pas ! [RESOLU] :-)simplifier ce code
[PHP] Interpréter du code dans du codeORDER BY en asp?!?
[Oracle 8i] extraire du code PLSQL d'un USER[PHP] Faire un script simple de mailing
1ers pas avec ASP --> help ![ASP] moteur de recherche pour une base access
Plus de sujets relatifs à : [ASP] Qu'est ce qui ne marche pas dans mon code ? ( simple )


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR