Avatar billede axl_rose Nybegynder
10. april 2006 - 10:04 Der er 20 kommentarer og
1 løsning

Viser ikke nummer 1

Hej!

Jeg har et script der skal vise nogle poster fra en access db, men den som står som den første på udskriften virker ikke. Altså det er et billede den skal vise  og det gør den ikke
Avatar billede eagleeye Praktikant
10. april 2006 - 10:10 #1
Du bliver nok nød til at vise lidt kode, eller kans det være lidt svært at finde fejlen. 

men du kan tjekke, at SQL sætningen henter det rigitge, at der ikke er en movenext før billedet udskrives. Nogle gange kandet hjælpe at indsætte en .Movefirst lige efter man har åbet for recordsetet..
Avatar billede axl_rose Nybegynder
10. april 2006 - 10:17 #2
Jeg har fundet ud af det, jeg lavet det om så koden var i html og asp'en bliev sat ind i små bokse, det hjalp. Ellers mange tak..! smid et svar og du skal få pointsene
Avatar billede eagleeye Praktikant
10. april 2006 - 10:21 #3
ok ;)
Avatar billede axl_rose Nybegynder
10. april 2006 - 10:21 #4
Det kan være du kan svare mig på et andet spørgsmål, er det muligt at sætte max limit på et response.write . F.eks hvis det er en lang beskrivelse hvor den bare skal vise f.eks 300 ord?
Avatar billede axl_rose Nybegynder
10. april 2006 - 10:27 #5
Opdagede et problem i det jeg har lavet, den udskriver kun post nr.1 se kode her:

<%
Do %><tr>
        <td height="12" width="343" valign="top"><b><%=butiksnavn%></b><td height="43" width="102" valign="top" rowspan="2"><a href="#" onClick="MyWindow=window.open('butik.asp?butiknr=<%=butiksnr%>','MyWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=600,height=400'); return false;"><img border="0" src="<%=butikslogo%>"></a><tr>
        <td height="30" width="343" valign="top"><a href="#" onClick="MyWindow=window.open('butik.asp?butiknr=<%=butiksnr%>','MyWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=600,height=400'); return false;"><%=butiksprofil%></a></tr>
    <tr>
        <td height="43" width="457" valign="top" colspan="2">&nbsp;</td>
    </tr>

<%
    rs.MoveNext
Loop While Not rs.EOF

Conn.Close
Set Conn = Nothing
%>
Avatar billede eagleeye Praktikant
10. april 2006 - 10:28 #6
Man kan ikke sætte en grænse men umiddelbart kan man gøre to forskellige ting den lette at begrænse man antal karakter eksvis 500


Response.Write Left("en meget lang streng...", 500)


En anden mulighed er selv at lave en funktion som tæller finder ord og meget tager 300 eks:

function maksOrd(str, antal)
  arr = Split(str, " ")
  max = antal - 1
  if max < ubound(arr)
    maksOrd = str
  else
    for i = 0 to max
      tmp = tmp & " " & ubound(i)
    next
    maksOrd = tmp
  end if
end funtion


Response.Write maksOrd("en meget lang streng...", 300)
Avatar billede axl_rose Nybegynder
10. april 2006 - 10:28 #7
Arh!... smart :-)! takker...
Avatar billede eagleeye Praktikant
10. april 2006 - 10:29 #8
der en lill fejl i den funktion hvis du vil bruge den:



function maksOrd(str, antal)
  arr = Split(str, " ")
  max = antal - 1
  if max < ubound(arr)
    maksOrd = str
  else
    tmp = ""
    for i = 0 to max
      tmp = tmp & " " & arr(i)
    next
    maksOrd = trim(tmp)
  end if
end funtion


Response.Write maksOrd("en meget lang streng...", 300)
Avatar billede axl_rose Nybegynder
10. april 2006 - 10:38 #9
Jeg ved ikke hvad det er, der gør at dne gentager den samme istedet for at vise de næste 4?
Avatar billede eagleeye Praktikant
10. april 2006 - 10:41 #10
hvordan har du indsat linien?

Dette  "en meget lang streng..."  skal komme fra variable.
Avatar billede axl_rose Nybegynder
10. april 2006 - 10:44 #11
Ups..! :-) det er ikke den det er denne :

<%
Do %><tr>
        <td height="12" width="343" valign="top"><b><%=butiksnavn%></b><td height="43" width="102" valign="top" rowspan="2"><a href="#" onClick="MyWindow=window.open('butik.asp?butiknr=<%=butiksnr%>','MyWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=600,height=400'); return false;"><img border="0" src="<%=butikslogo%>"></a><tr>
        <td height="30" width="343" valign="top"><a href="#" onClick="MyWindow=window.open('butik.asp?butiknr=<%=butiksnr%>','MyWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=600,height=400'); return false;"><%=butiksprofil%></a></tr>
    <tr>
        <td height="43" width="457" valign="top" colspan="2">&nbsp;</td>
    </tr>

<%
    rs.MoveNext
Loop While Not rs.EOF

Conn.Close
Set Conn = Nothing
%>

Jeg har fået limit funktion til at virke, mange tak :-)
Avatar billede eagleeye Praktikant
10. april 2006 - 10:45 #12
Ok ;) i den funktion er der også fejl i if sætningen, har du rettet den? der stod max < ubound(arrr) og det skal være max > ubound(arr) ..:

function maksOrd(str, antal)
  arr = Split(str, " ")
  max = (antal - 2)
  if max > ubound(arr) then
    maksOrd = str
  else
    tmp = ""
    for i = 0 to max
      tmp = tmp & " " & arr(i)
    next
    maksOrd = trim(tmp)
  end if
end function
Avatar billede axl_rose Nybegynder
10. april 2006 - 10:47 #13
Ja fandt ud af det... :-)
Avatar billede axl_rose Nybegynder
10. april 2006 - 10:48 #14
Men den tekst der skal vise de poster der er i db'en: Viser kun den første post og gentager den 4 gange, det er som om den ikke vil "movenext" :

Koden ser således ud (med limit funktion i)

<% Do %>
    <tr>
        <td height="12" width="343" valign="top"><b><%=butiksnavn%></b><td height="43" width="102" valign="top" rowspan="2"><a href="#" onClick="MyWindow=window.open('butik.asp?butiknr=<%=butiksnr%>','MyWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=600,height=400'); return false;"><img border="0" src="<%=butikslogo%>"></a><tr>
        <td height="30" width="343" valign="top"><a href="<%=butiksnr%>" onClick="MyWindow=window.open('butik.asp?butiknr=<%=butiksnr%>','MyWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=600,height=400'); return false;"><%

Response.Write Left("" & butiksprofil & "", 160)

%></a><%
    rs.MoveNext
Loop While Not rs.EOF

Conn.Close
Set Conn = Nothing
%></tr>
Avatar billede eagleeye Praktikant
10. april 2006 - 10:53 #15
Er butiksprofil en variable eller en kolonne i databasen?

Hvis det er en variable skal en tilsrkives med data fra recordsetet lige efte samt de andre variable som bruges Do


<% Do
    butiksnr = rs("butiksnr")
    butiksprofil = rs("butiksprofil")
    ... de
%>




Er det  kolonner mangler der rs(" og ") omkring og igen det gælder også for de andre:

Response.Write Left("" & rs("butiksprofil") & "", 160)
Avatar billede eagleeye Praktikant
10. april 2006 - 10:54 #16
hvis den skriver den først ud hver gang kan det tyde på du har det med varialbene:

    butiksnr = rs("butiksnr")
    butiksprofil = rs("butiksprofil")


Bare før linien <% Do %>
Avatar billede axl_rose Nybegynder
10. april 2006 - 10:56 #17
butiksprofil er en kolonne i databasen
Avatar billede axl_rose Nybegynder
10. april 2006 - 10:57 #18
De koloner der står der, har bevist ikke rs omkring da de inden DO funktionen er blevet lavet om :

butiksnr = rs("butiksnr")
    butiksprofil = rs("butiksprofil")
Avatar billede axl_rose Nybegynder
10. april 2006 - 10:59 #19
Det er ikke noget problem med at vise den data der i de felter, men problemet er at den gentager det data 4-5 gange i stedet for at vise de andre..!
Avatar billede eagleeye Praktikant
10. april 2006 - 11:00 #20
Ok det lyder som om de lini er med, men de er kommet med før <% Do %> og dermed opdateres de ikke når man går til næste post. De skal være efter <% Do %> sådan variablen opdateres med de nye data når man lave en .Movenext:

<% Do
    butiksnr = rs("butiksnr")
    butiksprofil = rs("butiksprofil")
 

%>
Avatar billede axl_rose Nybegynder
10. april 2006 - 11:06 #21
Nårh..! ja det virker nu okay mange mange tak..!... :-)

:-) Nu skal du have dine points :-)
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