webForumDet fria alternativet

Antal nya gästboksinlägg

ASP

9 svar · 332 visningar · startad av hallmert

Medlem sedan dec. 2004182 inlägg
Frågan#1

Hej på er!

Jag håller på och knackar ihop ett litet community, mest för skoj, men skulle ändå vilja få det att funka.

Nu är det så här att jag har fastnat på en funktion. När man loggar in så ska man ju självklart få se hur många nya gästboksinlägg man har fått, hur löser jag lättast det? Jag har sökt på tidigare inlägg här men inte lyckats med något utav dem. Hur ska jag koppla databasen för att få det att funka? Vad ska man SQL sträng vara?

Jag gissar på något sånt här: (?)

När man skriver gästboksinlägg setts en 0:a på fältet read.
När inlägget sen blir läst får det en 1:a. Därför vill jag skriva ut antalet 0:or.

select count(*) from gb where read=0 and tillID= "& session("id")

Jag har gjort så att session("id") måste matcha tillID för att det ska gå och sätta en 1:a på inlägget. Det funkar, men nu vill jag som sagt ha ut antalet nya poster som finns att läsa!

Tack på förhand allesammans!

P.S. Vore tacksam för hela koden och inte någon bit då jag är nybörjare på detta.

Medlem sedan juni 200032 967 inlägg
#2

SQL-frågan ser ok ut. Fungerar den inte?

Medlem sedan dec. 2004182 inlägg
#3

@nders skrev:

SQL-frågan ser ok ut. Fungerar den inte?

Jag vet ärligt talat inte, för jag vet inte hur jag ska göra för att skriva ut det allthoppa.

Medlem sedan juni 200032 967 inlägg
#4

Om du anger ett alias i SQL-frågan så kan du ange det som fältnamn när du skriver ut det. Snabbt exempel utan att veta hur din övriga kod ser ut:

strSQL = "select count(*) [b]as antal[/b] from gb where read=0 and tillID= "& session("id")
set objRS = objConn.Execute (strSQL)
Response.write objRS("antal")
Medlem sedan dec. 2004182 inlägg
#5
<%
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/fanclub.mdb")

strSQL = "select count(*) as antal from gb where read=0 and tillID= "& session("id")
set objRS = objConn.Execute (strSQL)
Response.write objRS("antal")
%>

Såhär gjorde jag, det gav fel på denna rad:

set objRS = objConn.Execute (strSQL)
Medlem sedan juni 200032 967 inlägg
#6

Du måste ange rätt namn på connectionobjektet.

Medlem sedan dec. 2004182 inlägg
#7

@nders skrev:

Du måste ange rätt namn på connectionobjektet.

<%
Set objConn = Server.CreateObject("ADODB.Connection") 
objConn.Execute "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/fanclub.mdb")

strSQL = "select count(*) as antal from gb where read=0 and tillID= "& session("id")
set objRS = objConn.Execute (strSQL)
Response.write objRS("antal")
%>

Negativt...

Medlem sedan juni 200032 967 inlägg
#8

Och du måste givetvis berätta vad det är för felmeddelande du får...

Medlem sedan dec. 2004182 inlägg
#9
<%
Set objConn = Server.CreateObject("ADODB.Connection") 
objConn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/fanclub.mdb")

strSQL = "select count(*) as antal from gb where read=0 and tillID= "& session("id")
set objRS = objConn.Execute (strSQL)
Response.write objRS("antal")
%>

Ger följande fel:

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
/jobb/theevents.net/fanclub.asp, line 10

Medlem sedan juni 200032 967 inlägg
#10

Då är read eller tillID av texttyp i tabellen. Varför då?

Om man använder texttyp skall man ha apostrofer runt värdet i SQL-frågan.

259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)