Trådstart 2 nov. 2001 21:09 #1 Om jag har en Spel sida typ och vill visa dom senste 4 spelen med tabell värden typ:
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Spel 1</td>
<tr>Spel 2</tr>
<td>Spel 3</td>
<tr>Spel 4</tr>
Hur fixar man detta?
I icaaq Medlem sedan okt. 2000 5 273 inlägg strSQL = "SELECT TOP 4 Spel From databasen order by id DESC"
Set ObjRS = ObjConn.execute(strSQL)
If ObjRS.EOF then
response.Write "nått blev fel"
Else
response.Write "<tr>" & vbCrLf
Do until ObjRS.EOF
response.Write "<td>"&ObjRS("spel")&"</td>"& vbCrLf
ObjRS.MoveNext
Loop
Response.Write "</tr>" & vbCrLf
L LarsG Medlem sedan dec. 2000 12 464 inlägg Du kan begränsa antalet poster direkt i din sql sats. Det ser lite olika ut beroende på volken dbms du använder
'access/sql server
sql = "select top 4 * from spel order by datum desc"
'progres/mysql
sql = "select * from spel order by datum desc limit 4"
annars går det alltid att göra så här
sql = "select * from spel order by datum desc"
set rs = connect.execute(sql)
for i = 1 to 4
if rs.eof then exit for
'visa data
rs.movenext
next
Jag använder inte SQL... jag borde men det gör jag inte =( hur skriver man då?
L LarsG Medlem sedan dec. 2000 12 464 inlägg Vad menar du med att du inte använder SQL? Hur sparar du dins spel då?
jag vet inte riktigt... jag använder access koder typ.. vet inte om det e skit samma typ jag har försökt att mixa lite:
<%
Const adLockOptimistic = 3
Const adOpenStatic = 3
Const adBookmarkFirst = 1
Set Spel = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=C:\Inetpub\wwwroot\spel\db\gn.mdb"
Set Spel = Server.CreateObject("ADODB.Recordset")
SPEL_info = "SELECT TOP 4 Spel From Spel order by id DESC"
Spel.Open SPEL_info, Connect, adOpenStatic, adLockOptimistic
%>
<%
Set ObjRS = ObjConn.execute(Spel)
If ObjRS.EOF then
response.Write "nått blev fel"
Else
response.Write "<tr>" & vbCrLf
Do until ObjRS.EOF
response.Write "<td>"&ObjRS("spel")&"</td>"& vbCrLf
ObjRS.MoveNext
Loop
Response.Write "</tr>" & vbCrLf
%>
Den säger Loop Förväntas
sorry jag menar 'End' förväntas. förlåt
L LarsG Medlem sedan dec. 2000 12 464 inlägg Jag tog bort lite onödigt och lade till en end if.
<%
Const adLockOptimistic = 3
Const adOpenStatic = 3
Const adBookmarkFirst = 1
Set [b]Connect[/b] = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=C:\Inetpub\wwwroot\spel\db\gn.mdb"
SPEL_info = "SELECT TOP 4 Spel From Spel order by id DESC"
Set ObjRS = [b]Connect[/b].execute(Spel_info)
If ObjRS.EOF then
response.Write "nått blev fel"
Else
response.Write "<tr>" & vbCrLf
Do until ObjRS.EOF
response.Write "<td>"&ObjRS("spel")&"</td>"& vbCrLf
ObjRS.MoveNext
Loop
Response.Write "</tr>" & vbCrLf
[b]
end if
[/b]
%>
(Även om du har en Access-databas så använder du SQL.)
red: såg ett fel till.
okey fel ändå:
ObjConn finns inte säger den... och det gör det ju faktist inte.. vad ska ObjConn innehålla?
L LarsG Medlem sedan dec. 2000 12 464 inlägg Du använder ett connection-objekt som heter connect när du gör open. Så om du byter ObjConn mot connect så.
Set ObjRS = Connect.execute(Spel)
är fel ändå:
Microsoft OLE DB Provider for ODBC Drivers fel '80040e0c'
Det har inte angivits något kommando för kommandoobjektet
/spel/4.asp, rad 8
@nders Medlem sedan juni 2000 32 967 inlägg Du har angett fel variabelnamn på din SQL-fråga när du skall exekvera den.
SPEL_info = "SELECT TOP 4 Spel From Spel order by id DESC"
Set ObjRS = Connect.execute([b]Spel_info[/b])
Mvh,
Okey... nog för denna kod skulle kunna fungera men den fungerar inte riktigt 100% som jag vill jag skulle vilja ha tabellerna så här:
<table width="280" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Spel 1</td>
<td>Spel 3</td>
</tr>
<tr>
<td>Spel 2</td>
<td>Spel 4</td>
</tr>
</table>
Kan man fixar detta? med den kod som finns här?
L LarsG Medlem sedan dec. 2000 12 464 inlägg I stället för den loop som du har nu så kan du göra så här
<%
'hämta alla poster till en array
arr = objrs.getrows()
%>
table width="280" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><% =arr(0,0)%></td>
<td><% =arr(0,2)%></td>
</tr>
<tr>
<td><% =arr(0,1)%></td>
<td><% =arr(0,3)%></td>
</tr>
</table>
Okey.. men om jag vill ha 2 st olika bakgrunder på X antal rader:
<table width="280" border="0" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="#000000">spel 1</td>
<td bgcolor="#FFFFFF">Spel 2</td>
<td bgcolor="#000000">Spel 3</td>
<td bgcolor="#FFFFFF">Spel 4</td>
<td bgcolor="#000000">Spel 5</td>
</tr>
</table>
då behöver jag en loop... men hur fixar man detta?
L LarsG Medlem sedan dec. 2000 12 464 inlägg <%
'hämta alla poster till en array
arr = objrs.getrows()
%>
table width="280" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><% =arr(0,0)%></td>
<td><% =arr(0,2)%></td>
</tr>
<tr>
<td><% =arr(0,1)%></td>
<td><% =arr(0,3)%></td>
</tr>
</table>
Har en fråga på denna kod:
Hur gör jag för att få länk systemet att fungerar? så att den ta det ID som arr 0,1 typ har... tack på förhand!
jag behöver hjälp här! hur gör jag så att:
<% =arr(0,0)%> blir den länk jag har på det spelet?
typ:
Mario -> spel.asp?id=1
L LarsG Medlem sedan dec. 2000 12 464 inlägg Du får ändra din select till
SPEL_info = "SELECT TOP 4 Spel,id From Spel order by id DESC"
och sedan när du skriver ut
<a href=vaddennuheter.asp?id='<%=arr(1,0)%>'><%=arr(0,0)%></a>
<a href=vaddennuheter.asp?id='<%=arr(1,0)%>'><%=arr(0,0)%></a>
får jag att fungera på ena..
om jag ska ha fler? länken fungrar inte typ:
<a href=vaddennuheter.asp?id='<%=arr(2,0)%>'><%=arr(0,1)%></a>
Typ har jag testat.. fattar inte hur detta fungerar riktigt.