Lista från en databas fråga

ASP

10 svar · 189 visningar · startad av His Divine Shadow

Medlem sedan sep. 20004 079 inlägg
Trådstart#1

Jag skulle vilja ha en speciell listning, jag har en tabell och jag vill att då jag listar från en databas så ska 3 st. poster listas på bredden innan det börjar med en ny "rad".

Medlem sedan dec. 19996 522 inlägg
#2

Du får helt enkelt lägga till en räknare som räknar till 3 då skapar han en ny rad i tabellen om den är över 3, sen nollar du den och kör om den igen tills den blir 3 eller högre...

Medlem sedan sep. 20004 079 inlägg
#3

eh...

Medlem sedan mars 2001243 inlägg
#4

Helt otestad kod men kan fungera...

Dim iRaknare, iSlutTal
iRaknare = 0
iSlutTal = 3

For iRaknare T0 iSlutTal
Response.Write objRS("blabla") & " "
If iRaknare = iSlutTal Then
Response.Write "<BR>"
End If
Next
Medlem sedan mars 2001243 inlägg
#5

Blev lite osäker, kanske ska vara så här istället...

Dim iRaknare, iSlutTal
iSlutTal = 3
For iRaknare = 0 T0 iSlutTal
Response.Write objRS("blabla") & " "
If iRaknare = iSlutTal Then
Response.Write "<BR>"
End If
Next
Medlem sedan sep. 20004 079 inlägg
#6

Det ska inte va en <BR> utan en ny <TR>

ungefär såhär:
<TR>
<TD>info från DB<TD>
<TD>info från DB<TD>
<TD>info från DB<TD>
<TR>
Och så börjar det på nytt igen och på detta vis skapar flera rader, eller "rows"

Medlem sedan sep. 20004 079 inlägg
#7

hey, jag har gjort framsteg:

				<tr>
					<td>
					<center><font face="Verdana" size="1"><b><%=RS("Benämning_10")%></b>
					<br>
					<img src="../produkter/<%=RS("Extra_8")%>">
					<br>
					Pris: <b><%=pris%></b>
					</td>

					<%RS.MoveNext%>

					<td>
					<center><font face="Verdana" size="1"><b><%=RS("Benämning_10")%></b>
					<br>
					<img src="../produkter/<%=RS("Extra_8")%>">
					<br>
					Pris: <b><%=pris%></b>
					</td>

					<%RS.MoveNext%>

					<td>
					<center><font face="Verdana" size="1"><b><%=RS("Benämning_10")%></b>
					<br>
					<img src="../produkter/<%=RS("Extra_8")%>">
					<br>
					Pris: <b><%=pris%></b>
					</td>
				</tr>
				<%
				RS.MoveNext
				Loop
				Conn.Close
				%>
			</table>

Problemet är att om det inte finns så pass många poster så att det blir 3 på varje rad, så då kommer detta fram bland posten:

ADODB.Field error '80020009'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

?

Jag har försökt med nån sorts IF sats men det vill inte funka.

Medlem sedan dec. 19996 522 inlägg
#8

Du får helt enkelt göra en recordcount på rs:et innan du loopar igenom resultatet typ..

IntCount = Rs.RecordCount
If IntCount > 3 Then
'skriv ut tabellen med räknaren och ny tabellrader efter var 3:e träff
Else
'skriv endast ut resultaten brevid varandra i en tabell med ett <tr>
End If

Nu är ju inte denna koden så som det egentligen skall vara utan sök på recordcount eller räkna poster eller något så ser du hur du får fram antalet poster i rs:et. Det brukar bli problem med att den hela tiden returnerar -2 eller -1, det beror på att du måste öppna rs:et på ett visst sätt. Sök och du skall finna ;)

Medlem sedan sep. 20004 079 inlägg
#9

Men om det är 2 st. på en rad och inte 3?
Går det inte att kolla innan Rs.MoveNext om det är slut eller nått?

Medlem sedan dec. 200012 464 inlägg
#10

efter varje rs.movenext så får du lägga in en if-sats

if rs.eof then exit do
Medlem sedan sep. 20004 079 inlägg
#11

perfect! thx! :)

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