Avatar billede thomas_b Nybegynder
01. december 2004 - 19:57 Der er 8 kommentarer og
1 løsning

Hvorfor virker dette script ikke ?

Hvorfor virker dette script ikke ?
Jeg har på fornemelsen at den mangler en "END IF" men ikke helt sikker...
Fejlen er at den ikke vil loade siden...! DVS. den tænker og tænker og tænker og tænker og tænker...!


<% if Request.QueryString("vis")="produkt" then
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("man.mdb")
Conn.Open DSN

SQL = "Select * FROM Produkter WHERE ProduktNummer=" & Request.QueryString("id")
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, Conn,1, 2

if rs.EOF then
Response.write "Der er ikke nogle billeder tilknyttet denne kalogori !"

else

antalPrRow=4
noPrRow=0
Response.Write <table cellspacing='0' cellpadding='0' border='0'>"
do while not rs.EOF
  if noPrRow=0 then Response.Write "<tr>"
  Response.Write "<td>"
  Response.Write "<img src=""" & rs("billede") & """>"
  Response.Write "</td>"
 
  noPrRow=noPrRow+1
  if noPrRow=antalPrRow then
    Response.Write "</tr>"
    noPrRow=0
  end if
  rs.Movenext
loop
if noPrRow>0 then Response.Write "</tr>"
Response.Write "</table>"
%>

!!!!!!!!!!

<%
Conn.Close
Set Conn = Nothing
end if %>
Avatar billede apo Praktikant
01. december 2004 - 20:36 #1
<% if Request.QueryString("vis")="produkt" then
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("man.mdb")
Conn.Open DSN

SQL = "Select * FROM Produkter WHERE ProduktNummer=" & Request.QueryString("id")
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, Conn,1, 2

if rs.EOF then
Response.write "Der er ikke nogle billeder tilknyttet denne kalogori !"

else

antalPrRow=4
noPrRow=0
Response.Write <table cellspacing='0' cellpadding='0' border='0'>"
do while not rs.EOF
  if noPrRow=0 then Response.Write "<tr>"
  Response.Write "<td>"
  Response.Write "<img src=""" & rs("billede") & """>"
  Response.Write "</td>"
  end if ' <-- Manglede!
 
  noPrRow=noPrRow+1
  if noPrRow=antalPrRow then
    Response.Write "</tr>"
    noPrRow=0
  end if
  rs.Movenext
loop
if noPrRow>0 then Response.Write "</tr>"
Response.Write "</table>"
end if ' <-- Manglede!
end if ' <-- Manglede!
%>

!!!!!!!!!!

<%
Conn.Close
Set Conn = Nothing
end if %>

Du manglede 3 end if'er :-)

Apo
Avatar billede thomas_b Nybegynder
01. december 2004 - 21:35 #2
Der kommer denne fejl...!

Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A0400)
En sætning var ventet
/shopping/nye_menu_oprette_billeder.asp, line 301
end if

Som er den linie med "end if" oven over "noPrRow=noPrRow+1"
Avatar billede fennec Nybegynder
02. december 2004 - 08:30 #3
Du manglede kun en "end if". Det er den som henviser til den aller først if (if request.query....). Men du manglede en " i linjen:

Response.Write <table cellspacing='0' cellpadding='0' border='0'>"
skal være
Response.Write "<table cellspacing='0' cellpadding='0' border='0'>"

<%
if Request.QueryString("vis")="produkt" then
  Set Conn = Server.CreateObject("ADODB.Connection")
  DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("man.mdb")
  Conn.Open DSN

  SQL = "Select * FROM Produkter WHERE ProduktNummer=" & Request.QueryString("id")
  Set rs = Server.CreateObject("ADODB.Recordset")
  rs.Open SQL, Conn,1, 2

  if rs.EOF then
    Response.write "Der er ikke nogle billeder tilknyttet denne kalogori !"

  else
    antalPrRow=4
    noPrRow=0
    Response.Write "<table cellspacing='0' cellpadding='0' border='0'>"
    do while not rs.EOF
      if noPrRow=0 then Response.Write "<tr>"
      Response.Write "<td>"
      Response.Write "<img src=""" & rs("billede") & """>"
      Response.Write "</td>"

      noPrRow=noPrRow+1
      if noPrRow=antalPrRow then
      Response.Write "</tr>"
      noPrRow=0
      end if
      rs.Movenext
    loop
    if noPrRow>0 then Response.Write "</tr>"
    Response.Write "</table>"
%>

!!!!!!!!!!

<%
  Conn.Close
  Set Conn = Nothing
  end if
end if
%>
Avatar billede thomas_b Nybegynder
02. december 2004 - 14:50 #4
nu virker selve siden, men det er ligesom det "loop" det fortsætter selv om der ikke er flere poster i DB...
Avatar billede fennec Nybegynder
02. december 2004 - 16:16 #5
Husk at lukke ?'et :o)
Avatar billede thomas_b Nybegynder
04. december 2004 - 14:24 #6
fennec --> Men hvordan er det lige jeg gør det...!
Avatar billede apo Praktikant
04. december 2004 - 15:07 #7
thomas_b > Du beder den/dem du vil give points (hvis du vil give points!) om at lægge et svar. Herefter lægger vedkommende (hvis han/hun er interesseret i points) et svar ved at ændre sin næste kommentar til et svar.

Derved vises en lille boks med navne på den/de der har lagt et svar - Hvis du markerer et eller flere navne og klikker på 'send' vil brugeren/brugerne få points og du har lukket spørgsmålet (brugere du ikke markerer får afvist svaret, og får ikke points).

Hvis du ikke ønsker at tildele points til nogen, vælger du selv at svare og giver herefter dig selv points. Dermed nulstiller du spørgsmålet og spørgsmålet er lukket.

Apo

P.S. God skik er at fortælle folk om du kunne bruge deres svar, eller at du har fundet en anden udvej på dit spørgsmål.
Avatar billede thomas_b Nybegynder
06. december 2004 - 23:31 #8
apo --> Jeg tror bare han mener jeg skal lukke det loop i mit script...! men det er det jeg ikke kan finde ud af...
Avatar billede fennec Nybegynder
07. december 2004 - 14:44 #9
Prøv at lave nogle response.write forskellige steder i scriptet for at se hvor langt du kommer i koden, inden den "fejler". Du skal have en aller sidst på siden, og hvis den bliver udskrevet, har du ikke et uendeligt loop, da den så aldrig ville nå den linje.

Men husk også at lukke ?'et, som Apo har beskrevet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester