[ASP] Conditions if imbriquées???

Conditions if imbriquées??? [ASP] - ASP - Programmation

Marsh Posté le 22-01-2003 à 13:43:10    

je suis en train de sécher grave sur un script asp, et je recherche activement mon erreur.
Et soudain j'ai un grand doute. Mon script est sur la base suivante:
 
do while not ors.eof
if (qqch) then
  if (qqch) then
  elseif
  elseif
  end if
  if (qqch) then
  end if
end if
ors.movenext
loop
 
seraient-ce mes conditions if qui se fouttent à travers la tronche? cette syntaxe est-elle autorisée en asp?

Reply

Marsh Posté le 22-01-2003 à 13:43:10   

Reply

Marsh Posté le 22-01-2003 à 14:18:20    

C plutot
do while not ors.eof  
  if (qqch) then  
    if (qqch) then  
    else
    end if  
    if (qqch) then  
    end if  
  end if  
  rs.movenext  
loop  

Reply

Marsh Posté le 22-01-2003 à 14:31:53    

+ 1

Reply

Marsh Posté le 22-01-2003 à 14:45:30    

pourquoi pas de elseif?
j'en ai besoin pour déterminer une string par rapport à un champ de ma base.
ca serait cela qui fiche la mirde?

Reply

Marsh Posté le 22-01-2003 à 15:02:48    

j'en profite pour exposer mon problème en entier, après plus d'une heure de test dans tous les sens, + demande d'aide, rien a faire.
voici donc la structure de mon code:
 
    <% if Request.QueryString("affiche" ) = "" then
       affiche = 22
       else
       affiche = Request.QueryString("affiche" )
       end if
       response.write "<a href=xxx.asp?affiche=" & affiche+21 & ">suivants</a>"
 
Ci-dessus, on récupère une variable dans l'url + proposition de lien  
 
     set oConnection = Server.CreateObject("ADODB.Connection" )
     oConnection.Open "xxx" %>
  <% Set oRs = oConnection.Execute ("SELECT xxx FROM t_xxx order by xxx desc" )
     i = 1
     j = 1
     Response.Write "<table width=100% border=0><tr>"
     oRs.MoveFirst
     do while not oRs.EOF
       if (j >= affiche) and (j < (affiche+21)) then
       points = oRs("points" )
       'par une série de if, elseif, on détermine une string différente selon le nbre de points
 
     if i = 8 then
       Response.Write "</tr><tr>"
       i = 1  
     end if
     Response.Write 'Affichage des éléments voulus
     i = i + 1
     end if
     j = j + 1
     oRs.movenext
     loop
     Response.Write "</tr></table>"
     oRs.close
     Set oRs = Nothing
     oConnection.Close
     %>
 
le résultats que je trouve est que lorsque la variable Affiche est nulle, donc remplacée par 22, tout fonctionne. c'est lorsque la variable prend la valeur de Request.Querystring que ca bugge. Pourtant, en l'affichant, elle est correcte.
 
Je suis sure que le problème est très crétin, mais je ne sais plus quoi faire et je pète un plomb  :cry:

Reply

Marsh Posté le 23-01-2003 à 16:18:31    

:bounce: up

Reply

Marsh Posté le 23-01-2003 à 17:04:06    

quand tu dis que ca bugg, c'est que ca affiche une erreur ou bien que le resultat n'est pas celui que tu espèrerais ?

Reply

Marsh Posté le 24-01-2003 à 08:14:45    

en fait quand ca bugue, il n'affiche rien, au lieu de m'afficher les enregistrement "affiche" à "affiche+21"

Reply

Marsh Posté le 24-01-2003 à 09:38:51    

Urd-sama a écrit :

en fait quand ca bugue, il n'affiche rien, au lieu de m'afficher les enregistrement "affiche" à "affiche+21"


ajoute des response.write "test1","test2",.. après chaques if pour débugger ta boucle...je pense qu'il doit y avoir un prob là-bas.

Reply

Marsh Posté le 24-01-2003 à 10:16:33    

j'ai changé ma facon de faire.
au lieu de passer le prochain enregistrement à afficher (à savoir "affiche" ), j'ai envoyé le numéro de la page.
ensuite, je calcule le premier enregistrement à afficher par un calcul barbare:
if Request.QueryString("page" ) = "" then
       affiche = 1
       else
       affiche = ((Request.QueryString("page" ) - 1) * 21)+1
       end if
et de cette facon là, comme par magie, ca fonctionne

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed