om bilden ingen,gif

ASP

21 svar · 312 visningar · startad av jboy_87

Medlem sedan aug. 20011 099 inlägg
Trådstart#1

Hur gör jag så att det inte bilden inget.gif visas i slumpa funktionen.
så här ser koden ut

Och jag har en tabell som heter Bild2
där e sökvägen till bilderna efter att man laddat upp bilden.

<%
Response.Buffer = True

Function Show()
Randomize
RandNum = Int(Rnd * Ialt) + 1
Record.MoveFirst
For i = 1 to RandNum - 1
Record.MoveNext
next
Response.Write "<a href='whois.asp?checkid=" & Record("id") & "'><img src='" & Record("bild2") & "' alt='" & Record("username") & Record("username") & "' border = '1' width= '65' height= '77'></a>"
end function

Set Rs = Server.CreateObject("ADODB.Connection")
DBPath = "DBQ=" & server.mappath("Database/members.mdb")
Rs.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

Sql = "Select count(*) as Found from members"
Set Record = Rs.Execute(Sql)

Ialt = Record("found")

Sql = "Select * from members"
Set Record = Rs.Execute(Sql)
%>

Medlem sedan juni 200032 967 inlägg
#2

Enklast:

Sql = "Select * from members [b]where not bild = 'ingen.gif'[/b]"

Mvh,

Red: kladdigt, sorry.

Medlem sedan dec. 19992 085 inlägg
#3

Tycker Slumpfunktionen verkar lite seg :(

Här är ett annat sätt som inte tar med inget.gif tror jag:

Set Databas = Server.CreateObject("ADODB.Connection")
Databas.Open ConString
SQL = "select Count(*) AS klo from tabell WHERE bild2 <>'inget.gif'"
Set RS_klo = databas.execute(SQL)

Randomize
Set rstemp = Server.Createobject("ADODB.Recordset")
SQL = "Select * from tabell WHERE bild2 <> 'inget.gif'"
rstemp.cursorlocation = 3
rstemp.cachesize = 5
rstemp.open SQL, ConString
rstemp.move Int(Rnd*RS_klo("klo"))

Tror det där borde funka. Men det är Vide som ska ha credit för det i så fall ;)

[r] du ska nog lyssna mer på @nders än på mig ;) [/r]

Medlem sedan aug. 20011 099 inlägg
#4

Sql = "Select * from members where not bild = 'Bilder/Medlemmar/ingen.gif'
får felmeddelandet:

ADODB.Recordset (0x800A0BCD)
Antingen är BOF eller EOF satt till True, eller så har aktuell post raderats. Den begärda åtgärden kräver en aktuell post.
/main.asp, line 31

Medlem sedan dec. 200012 464 inlägg
#5

Hur ser rad 31 ut? Visa lite kod omkring också.

Medlem sedan aug. 20011 099 inlägg
#6

<%
Response.Buffer = True

Function Show()
Randomize
RandNum = Int(Rnd * Ialt) + 1
Record.MoveFirst
For i = 1 to RandNum - 1
Record.MoveNext <--- rad 30
next
Response.Write "<a href='whois.asp?checkid=" & Record("id") & "'><img src='" & Record("bild") & "' alt='" & Record("username") & Record("username") & "' border = '1' width= '65' height= '77'></a>"
end function

Set Rs = Server.CreateObject("ADODB.Connection")
DBPath = "DBQ=" & server.mappath("Database/members.mdb")
Rs.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

Sql = "Select count(*) as Found from members"
Set Record = Rs.Execute(Sql)

Ialt = Record("found")

Sql = "Select * from members where not bild = 'Bilder/Medlemmar/ingen.gif'"
Set Record = Rs.Execute(Sql)
%>

Medlem sedan aug. 20011 099 inlägg
#7

löste det men nu vill jag att det inte slumpas fram samma bild

Medlem sedan dec. 200012 464 inlägg
#8

Vad menar du med samma? Nu visar du bara en bild.

Eller menar du som visats tidigare? I så fall måste du hålla reda på vilka bilder som har visats.

Medlem sedan aug. 20011 099 inlägg
#9

skriver ut så här:

<td><% Response.Write "<center>"
Show() %></td>
<td><% Response.Write "<center>"
Show() %></td>
<td><% Response.Write "<center>"
Show() %></td>
<td><% Response.Write "<center>"
Show() %></td>

4 bilder

Medlem sedan dec. 200012 464 inlägg
#10
<%
Response.Buffer = True
Set Rs = Server.CreateObject("ADODB.Connection")
DBPath = "DBQ=" & server.mappath("Database/members.mdb")
Rs.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

Sql = "Select count(*) as Found from members where not bild = 'Bilder/Medlemmar/ingen.gif'"
Set Record = Rs.Execute(Sql) 
Ialt = Record("found")

Sql = "Select * from members where not bild = 'Bilder/Medlemmar/ingen.gif'"
record.close
set record = nothing
Set Record = server.createobject("adodb.recordset")
record.cursorlocation = 3
record.open sql,rs
dim bilder(3)
randomize

for i = 0 to 3
  found = false
  do until true
     RandNum = Int(Rnd * Ialt)
     for j = 0 to i - 1
         if bilder(j) = RandNum then
            found = true
            exit for
         end if
     next
     if not found or i = 0 then exit do
  loop
  bilder(i) = RandNum

  record.Movefirst
  Record.Move randNum 
  Response.Write "<td><center>"
  Response.Write "<a href='whois.asp?checkid=" & Record("id") & "'><img src='" & Record("bild") & "' alt='" & Record("username") & Record("username") & "' border = '1' width= '65' height= '77'></a>"
  response.write "</td>"
next

record.close
rs.close

red: du får nog fixa till utskriften och lägga till lite <table> <tr> etc.

Medlem sedan aug. 20011 099 inlägg
#11

va fattar inte

Medlem sedan dec. 200012 464 inlägg
#12

Jag tog bort funktionen show därför att
den inte passade in om du vill se till att man inte skall se samma bild flera gånger. (Dessutom så använde den globala variabler! Sluta med sådant.)

Vad är det som inte fungerar?

Medlem sedan aug. 20011 099 inlägg
#13

asså jag fattar ingenting??

<%
Response.Buffer = True

Function Show()
Randomize
RandNum = Int(Rnd * Ialt) + 1
Record.MoveFirst
For i = 1 to RandNum - 1
Record.MoveNext
next
Response.Write "<a href='whois.asp?checkid=" & Record("id") & "'><img src='" & Record("bild") & "' alt='" & Record("username")& Record("syfte") & "' border = '1' width= '65' height= '77'></a>"
end function

Set Rs = Server.CreateObject("ADODB.Connection")
DBPath = "DBQ=" & server.mappath("Database/members.mdb")
Rs.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

Sql = "Select count(*) as Found from members where not bild = 'Bilder/Medlemmar/ingen.gif'"
Set Record = Rs.Execute(Sql)

Ialt = Record("found")

Sql = "Select * from members "
Set Record = Rs.Execute(Sql)
%>

så här skriver jag ut den:

\<table border="0" cellpadding="2" cellspacing="0" style="border-collapse: collapse"\>

<tr>
<td><% Response.Write "<center>"
Show() %></td>
<td><% Response.Write "<center>"
Show() %></td>
<td><% Response.Write "<center>"
Show() %></td>
<td><% Response.Write "<center>"
Show() %></td>
</tr>

Medlem sedan dec. 200012 464 inlägg
#14

Nu lade jag till några taggar så att du skall kunna använda det här i stället för det du hade tidigare. Om du vill ha funktionen att man inte visar samma bild flera gånger så passar det inte riktigt in med den struktur du hade tidigare.

<%
Response.Buffer = True
Set Rs = Server.CreateObject("ADODB.Connection")
DBPath = "DBQ=" & server.mappath("Database/members.mdb")
Rs.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath
Sql = "Select count(*) as Found from members where not bild = 'Bilder/Medlemmar/ingen.gif'"
Set Record = Rs.Execute(Sql) 
Ialt = Record("found")

Sql = "Select * from members where not bild = 'Bilder/Medlemmar/ingen.gif'"
record.close
set record = nothing
Set Record = server.createobject("adodb.recordset")
record.cursorlocation = 3
record.open sql,rs
dim bilder(3)
randomize

%>
<table border="0" cellpadding="2" cellspacing="0" style="border-collapse: collapse">
<tr>
<%
for i = 0 to 3
found = false
do until true
RandNum = Int(Rnd * Ialt)
for j = 0 to i - 1
if bilder(j) = RandNum then
found = true
exit for
end if
next
if not found or i = 0 then exit do
loop
bilder(i) = RandNum

record.Movefirst
Record.Move randNum 
Response.Write "<td><center>"
Response.Write "<a href='whois.asp?checkid=" & Record("id") & "'><img src='" & Record("bild") & "' alt='" & Record("username") & Record("username") & "' border = '1' width= '65' height= '77'></a>"
response.write "</td>"
next

record.close
rs.close
%>
</tr></table>
<table border="0" cellpadding="2" cellspacing="0" style="border-collapse: collapse">
<tr>
Medlem sedan aug. 20011 099 inlägg
#15

det blir ju samma bild på alla fyra och slumpas ej

Medlem sedan dec. 200012 464 inlägg
#16

Kan du lägga in lite traceutskrifter så att man kan se vad som händer ?

response.write "RandNum = " & randNum & " då i = " & i & "<br>"
record.Movefirst

Record.Move randNum 
response.write "record pos= " & record.absolutePosition & " då i = " & i & "<br>"
Medlem sedan aug. 20011 099 inlägg
#17

nu använder jag bara denna kod:

<%
Response.Buffer = True
Set Rs = Server.CreateObject("ADODB.Connection")
DBPath = "DBQ=" & server.mappath("Database/members.mdb")
Rs.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath
Sql = "Select count(*) as Found from members where not bild = 'Bilder/Medlemmar/ingen.gif'"
Set Record = Rs.Execute(Sql) 
Ialt = Record("found")
Sql = "Select * from members where not bild = 'Bilder/Medlemmar/ingen.gif'"
record.close
set record = nothing
Set Record = server.createobject("adodb.recordset")
record.cursorlocation = 3
record.open sql,rs
dim bilder(3)
randomize

%>
<table border="0" cellpadding="2" cellspacing="0" style="border-collapse: collapse">
<tr>
<%
for i = 0 to 3
found = false
do until true
RandNum = Int(Rnd * Ialt)
for j = 0 to i - 1
if bilder(j) = RandNum then
found = true
exit for
end if
next
if not found or i = 0 then exit do
loop
bilder(i) = RandNum

record.Movefirst
Record.Move randNum 
Response.Write "<td><center>"
Response.Write "<a href='whois.asp?checkid=" & Record("id") & "'><img src='" & Record("bild") & "' alt='" & Record("username") & Record("username") & "' border = '1' width= '65' height= '77'></a>"
response.write "</td>"
next

record.close
rs.close
%>
</tr></table>
<table border="0" cellpadding="2" cellspacing="0" style="border-collapse: collapse">
<tr>
</table>
Medlem sedan dec. 200012 464 inlägg
#18

Vad blir det för resultat om du lägger till dom response.write som jag skrev i mitt förra inlägg?

Medlem sedan aug. 20011 099 inlägg
#19

Blir fel på Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A0401)
Slut på programsats förväntas.
/test/default2.asp, line 41, column 81

<%
Response.Buffer = True
Set Rs = Server.CreateObject("ADODB.Connection")
DBPath = "DBQ=" & server.mappath("Database/members.mdb")
Rs.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath
Sql = "Select count(*) as Found from members where not bild = 'Bilder/Medlemmar/ingen.gif'"
Set Record = Rs.Execute(Sql) 
Ialt = Record("found")
Sql = "Select * from members where not bild = 'Bilder/Medlemmar/ingen.gif'"
record.close
set record = nothing
Set Record = server.createobject("adodb.recordset")
record.cursorlocation = 3
record.open sql,rs
dim bilder(3)
randomize

%>
<table border="0" cellpadding="2" cellspacing="0" style="border-collapse: collapse">
<tr>
<%
for i = 0 to 3
found = false
do until true
RandNum = Int(Rnd * Ialt)
for j = 0 to i - 1
if bilder(j) = RandNum then
found = true
exit for
end if
next
if not found or i = 0 then exit do
loop
bilder(i) = RandNum

record.Movefirst
Record.Move randNum 
response.write "RandNum = " & randNum & " då i = " & i & "<br>"
record.Movefirst
Record.Move randNum 
response.write "record pos= " & record.absolutePosition & " då i = " & i & "<br>"next

record.close
rs.close
%>
Medlem sedan aug. 20011 099 inlägg
#20

blir så här också
efter att lekt med koden

RandNum = då i = 0
record pos= 1 då i = 0
RandNum = då i = 1
record pos= 1 då i = 1
RandNum = då i = 2
record pos= 1 då i = 2
RandNum = då i = 3
record pos= 1 då i = 3

290 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
166 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)