webForumDet fria alternativet

Hämta från flera tabeller

ASP

4 svar · 408 visningar · startad av Vinnaren

Medlem sedan sep. 2005833 inlägg
Frågan#1

Hej

Undrar om man kan hämta data från flera tabeller i samma databas? Kolumnerna har samma namn i alla tabeller.

koden jag har anv för att hämta data från en tabell är:

<%
'############### PAGING-SYSTEM ###############
Set objRS = objConn.Execute("SELECT count(*) AS intRecords FROM info")

strCount	= 0							
intRecords	= objRS("intRecords")			
intPagesize	= 5					
intPages	= Int(((intRecords) + (intPageSize) - 1) / (intPageSize))	
On Error Resume Next
	intPage = CLng(Request.Querystring("sida"))
	If Err then
		intPage = 1
	End if
On Error Goto 0

If int(intPage) = "" OR int(intPage) < 1 then
	intPage = 1
End If

'############### NYHETER ###############
Set objRS=objConn.Execute("SELECT * FROM info ORDER BY ID ASC")
'Gör så att sidan börjar med rätt post!
objRS.Move((intPage*intPagesize)-intPagesize)

Do

If objRS.EOF then
	Exit Do
	Response.Write "<b>Det finns inga nyheter!</b>"

ElseIf strCount = intPageSize then
	Exit Do
End If

' Räknar posterna
strCount = strCount + 1
%>

Tacksam för all hjälp jag kan få

Medlem sedan dec. 200012 464 inlägg
#2
select 'info' as origin,<kolumner>
   from info
 union all
select 'piff', <kolumner>
   from piff
 union all
select 'paff', <kolumner>
   from paff
 order by 1,id
Medlem sedan sep. 2005833 inlägg
#3

vart ska man lägga in koden? både på pagein och under nyheten??
och sen ska man skriva in alla kolumner i <kolumner>'?

Är nybörjare :r

Medlem sedan okt. 20041 556 inlägg
#4

Japp, du får lägga in det även i satsen där du räknar posterna.
Set objRS=objConn.Execute("Här")
Om du använder ex. getRows() så kommer du slippa göra två anrop mot databasen.

Medlem sedan sep. 2005833 inlägg
#5

ok, har provat följande kod:

<%
'############### PAGING-SYSTEM ###############
Set objRS = objConn.Execute("

select 'startinfo' as origin,<id, rubrik, nyhet, skribent, email>
   from startinfo
 union all
select 'info2', <id, rubrik, nyhet, skribent, email>
   from info2
 union all
select 'info3', <id, rubrik, nyhet, skribent, email>
   from info3
 order by 1,id

")

strCount	= 0								' Nollställer räknaren som ska räkna posterna när vi loopar
intRecords	= objRS("intRecords")			' Kollar hur många poster det finns i gästboken
intPagesize	= 10							' Hur många poster per sida
intPages	= Int(((intRecords) + (intPageSize) - 1) / (intPageSize))	' Kollar hur många sidor det finns

On Error Resume Next
	intPage = CLng(Request.Querystring("sida"))
	If Err then
		intPage = 1 ' Om det är fel så kommer man till sida 1
	End if
On Error Goto 0

'Kollar så att personen är på någon sida
If int(intPage) = "" OR int(intPage) < 1 then
	intPage = 1
End If

'############### NYHETER ###############
Set objRS=objConn.Execute("

select 'startinfo' as origin,<id, rubrik, nyhet, skribent, email>
   from startinfo
 union all
select 'info2', <id, rubrik, nyhet, skribent, email>
   from info2
 union all
select 'info3', <id, rubrik, nyhet, skribent, email>
   from info3
 order by 1,id
 
 ")

men får följande fel:

Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A0409)
Oavslutad strängkonstant
news.asp, line 7, column 29
Set objRS = objConn.Execute("
----------------------------^

vad kan det vara för fel :S???

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