webForumDet fria alternativet

Loopa ut 2st ur getrows, sedan nästa 2

ASP

21 svar · 448 visningar · startad av ConnyFox

Medlem sedan aug. 20011 087 inlägg
Frågan#1

Hur gör jag för att först loopa ut 2st ur getrows och sedan nästa två osv?!

Medlem sedan juli 20041 183 inlägg
#2

jag är inte så inne på getrows men syntaxen är väl getrwos(rad,kolumn)?

I så fall fungerar det ju med två For sattser:
(10 rader)

For x = 0 To 9
    For y = 0 To 1
        getrows(x,y)
    Next
Next

eller med en while och en For-satts:
(Skriver väl ut all data?)

x=0
While Not objRs.EOF
    For y = 0 To 1
        getrows(x,y)
    Next

    x = x +1

Wend
Medlem sedan aug. 20011 087 inlägg
#3

hmm jag får inte till det riktigt.. använder denna koden

x = 0
For i=0 to ubound(annons,2)

while x < 3

getrows(0,i)

x = x+1

wend

Next

Det funkar bra på så vis att endast 3st skrivs ut, fungerar mindre bra då dessa tre är samma ;)

Medlem sedan apr. 20003 174 inlägg
#4

Hur vill du att resultatet ska bli?

Medlem sedan aug. 20011 087 inlägg
#5

tre poster ur databasen skall skrivas ut, sedan skall man kunna lägga t.ex in kod för annat och sedan loopa ut nästa 3 osv.

Medlem sedan juli 20041 183 inlägg
#6

lite osäker på vad du vill göra? Om du vill hämta 3 olika poster ur en databas kan du i SQL-sattsen skriva:

SQL = "SELECT DISTINCT tabellrad FROM tabellnamn"
Medlem sedan apr. 2004298 inlägg
#7

Vill du ha 2 poster sen en radbrytning, forstsätta med 2 poster och en radbrytning .. osv.. ?

Medlem sedan juli 20041 183 inlägg
#8

Jag är inte så inne på getrows så jag postar hur jag hade gjort med RecordSet:

'----- Skriver ut alla poster
While Not objRs.EOF
	'----- Första posten skrivs ut
	objRs.MoveNext	

	'----- Kontrollerar så att det inte är slut på poster
	If Not objRs.EOF Then
		'---- NEJ! Andra posten skrivs ut
		objRs.MoveNext
	End If
Wend
Medlem sedan juli 20041 183 inlägg
#9

Är det förresten annonser du vill ha ut med bilder?? Det finns en komponent för det i ASP. Du kan läsa mer om det här:

http://www.w3schools.com/asp/asp_adrotator.asp

Medlem sedan aug. 20011 087 inlägg
#10

Mjo men jag använder ju inte recset jag använder getrows :( och nej bilder är ingen viktig del.

Medlem sedan juli 20041 183 inlägg
#11

borde det inte vara:

Dim x, y

x = 0
y = 0

For i=0 to ubound(annons,2)
	while x < 3
		getrows(i,x)
		x = x + 1
	wend
Next

jag ändrade värdena i getrows(värde1, värde2) från (0,x) till (i,x)

Medlem sedan aug. 20011 087 inlägg
#12

Du kanske har rätt men det fungerade inte för mig

Det går inte att använda parenteser när en Sub anropas.
/webshop2/main.asp, line 66, column 11
annons(i,x)

Dim x, y

x = 0
y = 0

For i=0 to ubound(annons,2)
	while x < 3
		annons(i,x)
		x = x + 1
	wend
Next
Medlem sedan juli 20041 183 inlägg
#13

Om du vill anropa en funktion som inte returnerar något får du skriva t.ex:

funktionsNamn inparameter1, inparameter2, osv...

Om du anropar en funktion som ska returnerar något skriver du t.ex:

variabel = funktionsNamn(inparameter1, inparameter2, osv...)

eller

<%=funktionsNamn(inparameter1, inparameter2, osv...)%>

Medlem sedan aug. 20011 087 inlägg
#14

ok nu fattar jag ingenting alls :D
varför fungerar inte koden säger du? :D

Medlem sedan juli 20041 183 inlägg
#15

när jag fick problemet som sa att man inte kan använda paranteser så var det för att funktionen som jag anropade inte returnerade någon information...

ex om man anropar en funktion som ska räkna ut 1 + 2 och returnera svaret så använder man paranteser...

om man ska anropa en parantes som inte returnerr något utan själv gör att så anvnder man inga paranteser..

Det finns alltså två olika sätt att anropa en funktion på beroende vad funktionen gör:

  1. funktionsNamn inparameter1, inparameter2
  2. variabel = funktionsNamn(inparameter1, inparameter2 )
Medlem sedan aug. 20011 087 inlägg
#16

Aha ok aja jag har nu denna koden men den gör inte alls det jag vil att den skall göra. Den skriver ut samma post 3 gånger istället för 3 olika poster..

Dim x, y

x = 0
y = 0

For i=0 to ubound(annons,2)
	while x < 3
		.write annons(1,i)
		x = x + 1
	wend
Next

Dvs istället för kanske
volvo, saab, toyota så skriver den ut volvo volvo volvo :D

Medlem sedan mars 20015 287 inlägg
#17

/red. tänk om man lärde sig uppdatera sidan innan man postade... :OO

Medlem sedan juli 20041 183 inlägg
#18

du anropar en subrutin med

annons(1, i)

Hur ser subrutinen ut?

Medlem sedan mars 20015 287 inlägg
#19

Nja, han gör väl inte det va? Det är arrayen han skriver ut.
Felet som gjordes tidigare var att han inte skrev:

response.write annons(1, i)

..skulle jag tro...

Nu är felet att han har en loop i loopen som går tre varv utan att påverka arrayen - mao skrivs samma värde ut hela tiden.

Medlem sedan mars 20015 287 inlägg
#20

Skulle inte något likt detta fungera:

Dim x, y

x = 0
y = 0
i = 0

imax = ubound(annons,2)

while x < 3
	If i =< imax then
		response.write annons(1,i)
	End If
	x = x + 1
	i = i + 1
wend
x = 0

'lite mer kod

while x < 3
	If i =< imax then
		response.write annons(1,i)
	End If
	x = x + 1
	i = i + 1
wend
x = 0

/red. hupp :r

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