webForumDet fria alternativet

Hämta från 2 tabeller!

ASP

12 svar · 218 visningar · startad av [AMD]Zmaster

Medlem sedan mars 20021 716 inlägg
Frågan#1
<!-- #include file="adovbs.inc" -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
<font face="Verdana" size="1"><br> ->>>> Det finns 
<% Set db = Server.CreateObject("ADODB.Connection")
db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("../../data/databas.mdb")&";"
 
SQL = "SELECT Count(*) From nyheter"
Set rs = db.Execute(SQL)
%>
<%=RS.Fields(0) %> nyheter inlaggda</font> 
</body>
</html>

Nu vill jag så att den plus nyheter ska hämta artiklar-tabellen och skriva ut samma grej fast Det finns ** artiklar inlaggda på nästa rad, hur ändrar jag det?

Medlem sedan mars 20021 716 inlägg
#2

Snälla lite brådis, nån här måste veta :q

Medlem sedan mars 20023 561 inlägg
#3

Kan man inte göra så här?

SQL = "SELECT count(nyheter.*), count(artiklar.*) FROM nyheter, artiklar"

Och för att skriva ut:

Response.Write("Det finns " & Rs.Fields(0) & " nyheter och " & Rs.Fields(1) & " artiklar.")

(Helt otestat, men det borde fungera.)

Medlem sedan dec. 200012 464 inlägg
#4
<!-- #include file="adovbs.inc" -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
<% Set db = Server.CreateObject("ADODB.Connection")
db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("../../data/databas.mdb")&";"
 SQL = "SELECT Count(*) , 1 From nyheter union select count(*),2 from artiklar order by 2"
Set rs = db.Execute(SQL)
%>
<font face="Verdana" size="1"><br> ->>>> Det finns 

<%=RS.Fields(0) %> nyheter inlaggda<br>
<% rs.movenext %>
->>>> Det finns 
<% = rs.fields(0) %> artiklar inlagda</font> 
</body>
</html>
Medlem sedan mars 20021 716 inlägg
#5

Lars G: med din kod:

ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/hnadmin/antal.asp, line 17

Medlem sedan dec. 200012 464 inlägg
#6

Ändra från rs.fields(9) till rs.fields(0)

Medlem sedan mars 20023 561 inlägg
#7

Ett litet råd:
Byt ut

db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("../../data/databas.mdb")&";"

till:

db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../../data/databas.mdb") & ";"
Medlem sedan mars 20021 716 inlägg
#8

LarsG skrev:

Ändra från rs.fields(9) till rs.fields(0)

Ahh Tack så mycket!

Medlem sedan mars 20021 716 inlägg
#9

Josef skrev:

Ett litet råd:
Byt ut

db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("../../data/databas.mdb")&";"

till:

db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../../data/databas.mdb") & ";"

Vad gör det för skillnad??

Medlem sedan mars 20021 716 inlägg
#10

Hur gör jag om jag vill lägga till ännu en nu?

Medlem sedan mars 20023 561 inlägg
#11

[AMD skrev:

Zmaster]Vad gör det för skillnad??

Brukar vara ett snabbare sätt att öppna och stänga databasen.

Medlem sedan mars 20021 716 inlägg
#12

Oki men som sagt, om jag sen skulle vilja hämta från ännu en tabell, hur skriver jag då?

Medlem sedan dec. 200012 464 inlägg
#13

Jet-drivrutinen är mer stabil och har bättre prestanda än access-drivrutinen.

Lägga till en till union

SQL = "SELECT Count(*) , 1 From nyheter " &_
" union select count(*),2 from artiklar " & _
" union select count(*),3 from <dintabell> order by 2"

osv

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