webForumDet fria alternativet

Sista posten ska visa annorluna bild

ASP

60 svar · 1 208 visningar · startad av wunderbaren

Medlem sedan dec. 2002105 inlägg
Frågan#1

Hejsan!

Nedan visar en kod som postar poster ur databasen, men hur gör man så att den sista posten ska visa annorlunda bild? Det är mest ett filnamn jag vill ändra, från "files/icon_lines.gif" till files/icon_lines2.gif.

<%

Set RecSet=Conn.Execute("Select * From galleri Where sort='" & Request.Querystring("kat") & "' Order By namn")

If RecSet.EOF Then%>
Inga kategorier inlagda i kategorin <%=Request.Querystring("kat")%>.
<%Else
Do Until RecSet.EOF
Set RS=Conn.Execute("Select * From galleri Where namn='" & RecSet("namn") & "'")
Set ReS=Conn.Execute("Select Top 1 * From bilder Where namn='" & RecSet("namn") & "' Order By datum desc")
Set Bilder=Conn.Execute("Select Count(*) As antal From bilder Where namn='" & RecSet("namn") & "'")

If ReS.EOF Then

%>
<img border="0" src="files/icon_lines_empty.gif" width="17" height="20" align="absmiddle"><img border="0" src="files/icon_lines.gif" width="17" height="20" align="absmiddle"><img border="0" src="files/icon_folder.gif" width="16" height="15" align="absmiddle">  <a href="./?page=galleri&kat=<%= Request.QueryString("kat")%>&id=<%=RecSet("namn")%>"><%=RecSet("namn")%></a><br><%End If
RecSet.MoveNext
Loop
End If%>

Medlem sedan dec. 20003 887 inlägg
#2

Antingen genom att loopa ut posterna med for ... next eller så använder du en räknare. I båda fallen kollar du räknaren om den är lika med RecSet.RecordCount och då byter du sökväg till bilden.

Medlem sedan dec. 2002105 inlägg
#3

Kan du visa kod? :)

Medlem sedan dec. 20003 887 inlägg
#4

Jodå...

<%
intCounter = 0

While Not RecSet.EOF
  intCounter = intCounter + 1

  if(intCounter < RecSet.RecordCount) then
    strPath = "files/icon_lines.gif"
  else
    strPath = "files/icon_lines2.gif"
  end if
%>
...<img src="<%=strPath%>" border="0">...
<%

  RecSet.MoveNext
Wend
%>

Något åt det hållet kanske...

Medlem sedan dec. 2002105 inlägg
#5

Jag förstår inte riktigt hur man får in den i den nuvarande koden, kan du hjälpa mig? Kan du inte lägga in den i den koden som finns nu?

Medlem sedan dec. 2002105 inlägg
#6

Kan verkligen ingen hjälpa mig? :) Behöver bara hjälp att sätta ihop dom.

Medlem sedan dec. 20003 887 inlägg
#7

Givetvis... ska genast klippa och klistra lite ;)

intCounter = 0

Set RecSet=Conn.Execute("Select * From galleri Where sort='" & Request.Querystring("kat") & "' Order By namn")

if(RecSet.EOF) then
  Response.Write "Inga kategorier inlagda i kategorin " & Request.QueryString("kat")
else
  While Not RecSet.EOF
    set objRS = Conn.Execute("SELECT * FROM galleri WHERE namn = '" & RecSet("namn") & "'")
    set objPicture = Conn.Execute("SELECT TOP 1 * FROM bilder WHERE namn = '" & RecSet("namn") & "' ORDER BY datum DESC")
    set objCount = Conn.Execute("SELECT COUNT(*) AS CountOfBilder FROM bilder WHERE namn = '" & RecSet("namn") & "'")
    
    intCounter = intCounter + 1

    if(intCounter < RecSet.RecordCount) then
      strPath = "files/icon_lines.gif"
    else
      strPath = "files/icon_lines2.gif"
    end if

    Response.Write "<img border=""0"" src=""files/icon_lines_empty.gif"" width=""17"" height=""20"" align=""absmiddle"">"
    Response.Write "<img border=""0"" src=""" & strPath & """ width=""17"" height=""20"" align=""absmiddle"">"
    Response.Write "<img border=""0"" src=""files/icon_folder.gif"" width=""16"" height=""15"" align=""absmiddle"">"
    Response.Write "<a href=""./?page=galleri&kat=" & Request.QueryString("kat") & "&id=" & RecSet("namn") & """>" % RecSet("namn") & "</a><br>"
    
    RecSet.MoveNext
  Wend
end if

Du kan ju börja med att testa om ovan fungerar.

Medlem sedan dec. 2002105 inlägg
#8

Nja, det fungerar på ett sätt. Alla poster får nu bilden som den sista posten ska ha.

Medlem sedan apr. 20031 660 inlägg
#9

HEJ!

Det borde bero på att du skapar recodsetet på fel sätt, då blir
intCounter=1 och RecSet.RecordCount=-1 dvs 1<-1 dvs false vilket ger andra bilden.

Använd
RecSet.Open sql, Conn, 1, 2
för att öppna rs:et korrekt.

[R]Ändrat till Conn[/R]

Medlem sedan dec. 2002105 inlägg
#10

Vart exakt ska man stoppa in den?

Medlem sedan apr. 20031 660 inlägg
#11

HEJ!

Där du använder RecSet, dvs rad två/tre.

Medlem sedan dec. 2002105 inlägg
#12

Får felmeddelande:

Microsoft VBScript runtime error '800a01a8'

Object required: ''

/webpages/bilder.asp, line 23

Klistrade in det så här, fel eller?

intCounter = 0
RecSet.Open sql, dbconn, 1, 2
Set RecSet=Conn.Execute("Select * From galleri Where sort='" & Request.Querystring("kat") & "' Order By namn")

Medlem sedan apr. 20031 660 inlägg
#13

HEJ!

Ja, det jag skickade ska ersätta det du använder, lägg själva sql-strängen i en variabel, och använd Conn som ditt databasobjekt heter istället.

Medlem sedan dec. 2002105 inlägg
#14

Hehe, jag förstår inte nåt av det du säger, jag lär mig fortfarande ASP. Kan du inte visa i koden?

Medlem sedan apr. 20031 660 inlägg
#15

HEJ!

J.N. skrev:

...det jag skickade ska ersätta det du använder...

Ta bort
Set RecSet=Conn.Execute("Select * From galleri Where sort='" & Request.Querystring("kat") & "' Order By namn")

J.N. skrev:

...lägg själva sql-strängen i en variabel...

sql = "Select * From galleri Where sort='" & Request.Querystring("kat") & "' Order By namn"

J.N. skrev:

...använd Conn...

RecSet.Open sql, Conn, 1, 2

Detta resulterar i:
intCounter = 0
sql = "Select * From galleri Where sort='" & Request.Querystring("kat") & "' Order By namn"
RecSet.Open sql, Conn, 1, 2

Medlem sedan dec. 2002105 inlägg
#16

Gjorde exakt som du sa, fick samma felmeddelande..hmm..

Den klagar på denna raden:
RecSet.Open sql, Conn, 1, 2

Koden ser nu ut så här:

sql = "Select * From galleri Where sort='" & Request.Querystring("kat") & "' Order By namn"

intCounter = 0

RecSet.Open sql, Conn, 1, 2

Medlem sedan juni 200032 967 inlägg
#17

Du måste skapa recordset-objektet först.

Set RecSet = Server.Createobject("ADODB.Recordset")

Mvh

Medlem sedan dec. 2002105 inlägg
#18

okej, nu fick jag inga felmeddelanden, men samma problem, alltså att den bilden som ska komma på sista posten kommer på Alla...

Detta är koden nu:

sql = "Select * From galleri Where sort='" & Request.Querystring("kat") & "' Order By namn"

intCounter = 0

Set RecSet = Server.Createobject("ADODB.Recordset")
RecSet.Open sql, Conn, 1, 2

if(RecSet.EOF) then
  Response.Write "Inga kategorier inlagda i kategorin " & Request.QueryString("kat")
else
  While Not RecSet.EOF
    set objRS = Conn.Execute("SELECT * FROM galleri WHERE namn = '" & RecSet("namn") & "'")
    set objPicture = Conn.Execute("SELECT * FROM bilder WHERE namn = '" & Request.Querystring("kat") & "' ORDER BY namn DESC LIMIT 1")
    
    intCounter = intCounter + 1

    if(intCounter < RecSet.RecordCount) then
      strPath = "files/icon_lines.gif"
    else
      strPath = "files/icon_lines2.gif"
    end if

    Response.Write "<img border=""0"" src=""files/icon_lines_empty.gif"" width=""17"" height=""20"" align=""absmiddle"">"
    Response.Write "<img border=""0"" src=""" & strPath & """ width=""17"" height=""20"" align=""absmiddle"">"
    Response.Write "<img border=""0"" src=""files/icon_folder.gif"" width=""16"" height=""15"" align=""absmiddle"">&nbsp;&nbsp;"
    Response.Write "<a href=""./?page=galleri&kat=" & Request.QueryString("kat") & "&id=" & RecSet("namn") & """>" & RecSet("namn") & "</a><br>"
    
    RecSet.MoveNext
  Wend
end if
Medlem sedan apr. 20031 660 inlägg
#19

HEJ!

Har du en
Set RecSet = Server.CreateObject("ADODB.RecordSet")
med i din db-anslutning?

Trådåtervinning!

Okej, då är det endast att skriva ut de variabler du skapar och se vad som blir fel!

Vad är alltså intCounter och RecSet.RecordCount?

Medlem sedan dec. 2002105 inlägg
#20

Min kod som är precis ovanför SQL ser ut såhär:

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=databas;USER=user;PASSWORD=password;OPTION=3;"
256 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)