webForumDet fria alternativet

om bilden ingen,gif

ASP

21 svar · 272 visningar · startad av jboy_87

Medlem sedan aug. 20011 099 inlägg
Frågan#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)
%>

------------------
ASP är bäst fuck the rest!!!

Medlem sedan juni 200032 967 inlägg
#2

Enklast:

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

Mvh,

Red: kladdigt, sorry.

------------------
All your base are belong to me.

[Redigerat av @nders den 04 nov 2001]

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]

------------------
//M@rtin || Peachy.nu\\

ni taLar Bra laTiN

[Redigerat av M@rtin den 04 nov 2001]

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

------------------
ASP är bäst fuck the rest!!!

Medlem sedan dec. 200012 464 inlägg
#5

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

------------------
essentitia preter non sans multiplicandum

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)
%>

------------------
ASP är bäst fuck the rest!!!

Medlem sedan aug. 20011 099 inlägg
#7

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

------------------
ASP är bäst fuck the rest!!!

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.

------------------
essentitia preter non sans multiplicandum

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

------------------
ASP är bäst fuck the rest!!!

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.

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 04 nov 2001]

Medlem sedan aug. 20011 099 inlägg
#11

va fattar inte

------------------
ASP är bäst fuck the rest!!!

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?

------------------
essentitia preter non sans multiplicandum

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>

------------------
ASP är bäst fuck the rest!!!

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>

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 04 nov 2001]

Medlem sedan aug. 20011 099 inlägg
#15

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

------------------
ASP är bäst fuck the rest!!!

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>"

------------------
essentitia preter non sans multiplicandum

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>

------------------
ASP är bäst fuck the rest!!!

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?

------------------
essentitia preter non sans multiplicandum

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
%>

------------------
ASP är bäst fuck the rest!!!

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

------------------
ASP är bäst fuck the rest!!!

254 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
116 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)