Avatar billede exp-ralle Nybegynder
21. august 2002 - 20:16 Der er 18 kommentarer og
4 løsninger

Tælle antal poster i database

Hvordan kan man tælle hvor mange poster der er i en database ?

Altså fx. til et newssystem hvordan kan man der tælle hvor mange nyheder der er i databasen ?
Avatar billede keysersoze Ekspert
21. august 2002 - 20:18 #1
SELECT COUNT(id) AS antalposter FROM dintabal

response.write rs("antalposter")
Avatar billede flax Nybegynder
21. august 2002 - 20:21 #2
strSQL2 = "Select count(*) as antal from dintabel"
set rs2 = DBConn.Execute(strSQL2)
Avatar billede exp-ralle Nybegynder
21. august 2002 - 20:27 #3
keysersoze ---> id er det et felt der skal være i db'en ?
Avatar billede fiskerendk Nybegynder
21. august 2002 - 20:30 #4
<%
Response.Buffer = True
mode = Request.QueryString("mode")
Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("database.mdb")
%><% if mode = "" then
                       
set rs = Conn.Execute("select count(*) as id from news")
id = rs("id")
rs.close
set rs = nothing               
%><%=id%><% end if %></font><%
conn.close
set conn = nothing               
%>)
Avatar billede medions Nybegynder
21. august 2002 - 20:31 #5
strSQL = "SELECT COUNT(*) FROM dintabel"
Set objRs = objConn.Execute(strSQL)

for udskrift...

Response.Write("Der er: " & objRs(0) & " poster i databasen!")

//>Rune
Avatar billede keysersoze Ekspert
21. august 2002 - 20:35 #6
ja - men du kan bare benytte et eksisterende kolonnenavn eller bare benytte *
Avatar billede medions Nybegynder
21. august 2002 - 20:43 #7
keysersoze og flax> Husk at hvis han bruger Access skal der være [ og ] rundt om ID før det vil virke, da ID er et reseveret ord i Access...

//>Rune
Avatar billede exp-ralle Nybegynder
21. august 2002 - 20:55 #8
Ok tak, men kan nogen lige som noget ekstra (hvis i gider) sige mig hvordan jeg kan gøre sådan at den først skrevede fx. nyhed ikke får en <hr> under sig ?
Avatar billede medions Nybegynder
21. august 2002 - 21:00 #9
Så er vi nødt til lige at se din kode...

//>Rune
Avatar billede exp-ralle Nybegynder
21. august 2002 - 21:06 #10
<html>
<head>
<title>Trænings oversigt</title>
<link rel="stylesheet" href="style.css" type="text/css">
</head>

<body>
<b>Oversigt</b> | <a href="tilfoj.asp">Tilføj</a><br><br>

<%

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("database.mdb")
Conn.Open DSN

strSQL = "Select * From Traening Order by Id desc"

Set rs = Conn.Execute(strSQL)

If rs.EOF Then
Response.Write "<i>Ingen træninger endnu</i>"

Else

Do

Response.Write "<b>Længde: </b>" & rs("Længde") & " km.<br>"
Response.Write "<b>Tid: </b>" & rs("Tid") & " min.<br>"
Response.Write "<b>Dato: </b>" & rs("Dato") & "<br>"
---->HEEEEEEEEEEEEEER<----
Response.Write "<b>Rutenavn: </b>" & rs("Rutenavn") & ""
Else
Response.Write "<b>Rutenavn: </b>" & rs("Rutenavn") & "<br><hr color='#000000' size='1'><br>"
End if

rs.MoveNext
Loop While NOT rs.EOF

End if

Conn.Close
Set Conn = Nothing

%>

</body>

</html>

et lille trænings system...
der hvor der står ---->HEEEEEEEEEEEEEER<----
skal det kode som gør at hvis dette var den først postede træning så kommer der ikke en <hr> da det ser lidt dumt ud... problemmet er bare at jeg ikke kan finde ud af det hehe.
Avatar billede exp-ralle Nybegynder
21. august 2002 - 21:07 #11
Jeg har prøvet med
If rs("Id") = 1 Then
...


men det går ikke da den første træning ikke længere har nummer 1 :(
Avatar billede eagleeye Praktikant
21. august 2002 - 21:09 #12
medions>> ID er ikke reserveret ord i SQL eller Access.. Det er et almendelig brugt kolonnenavn for den kolonne man bruger som autonummer. Jeg tror måske du tænker på IN.
Avatar billede eagleeye Praktikant
21. august 2002 - 21:27 #13
Du kan tilføje en variable firstPost=ture og indsæt det lige før Do.. sådan her:

firstPost = true
Do


Og der hvor der står: ---->HEEEEEEEEEEEEEER<----
Skriver du disse to linie, du har selv indsat else og end if:

  if firstPost = true then
    firstPost = false
Avatar billede exp-ralle Nybegynder
21. august 2002 - 21:52 #14
så får ingen af træningerne en <hr>:

<html>
<head>
<title>Trænings oversigt</title>
<link rel="stylesheet" href="style.css" type="text/css">
</head>

<body>
<b>Oversigt</b> | <a href="tilfoj.asp">Tilføj</a><br><br>

<%

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("database.mdb")
Conn.Open DSN

strSQL = "Select * From Traening Order by Id desc"

Set rs = Conn.Execute(strSQL)

If rs.EOF Then
Response.Write "<i>Ingen træninger endnu</i>"

Else

FirstPost = True
Do

Response.Write "<b>Længde: </b>" & rs("Længde") & " km.<br>"
Response.Write "<b>Tid: </b>" & rs("Tid") & " min.<br>"
Response.Write "<b>Dato: </b>" & rs("Dato") & "<br>"
If FirstPost = True Then
Response.Write "<b>Rutenavn: </b>" & rs("Rutenavn") & ""
Else
FirstPost = False
Response.Write "<b>Rutenavn: </b>" & rs("Rutenavn") & "<br><hr color='#000000' size='1'><br>"
End if

rs.MoveNext
Loop While NOT rs.EOF

End if

Conn.Close
Set Conn = Nothing

%>

</body>

</html>
Avatar billede eagleeye Praktikant
21. august 2002 - 21:54 #15
du har også sat denne linie
FirstPost = False
ind i else delen det var ikke det jeg mente, det skal stå efter if ..


If FirstPost = True Then
  FirstPost = False
  Response.Write "<b>Rutenavn: </b>" & rs("Rutenavn") & ""
Else
  Response.Write "<b>Rutenavn: </b>" & rs("Rutenavn") & "<br><hr color='#000000' size='1'><br>"
End if
Avatar billede exp-ralle Nybegynder
21. august 2002 - 21:59 #16
så får de allesammen en <hr>:

<html>
<head>
<title>Trænings oversigt</title>
<link rel="stylesheet" href="style.css" type="text/css">
</head>

<body>
<b>Oversigt</b> | <a href="tilfoj.asp">Tilføj</a><br><br>

<%

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("database.mdb")
Conn.Open DSN

strSQL = "Select * From Traening Order by Id desc"

Set rs = Conn.Execute(strSQL)

If rs.EOF Then
Response.Write "<i>Ingen træninger endnu</i>"

Else

Do

Response.Write "<b>Længde: </b>" & rs("Længde") & " km.<br>"
Response.Write "<b>Tid: </b>" & rs("Tid") & " min.<br>"
Response.Write "<b>Dato: </b>" & rs("Dato") & "<br>"
If FirstPost = True Then
  FirstPost = False
  Response.Write "<b>Rutenavn: </b>" & rs("Rutenavn") & ""
Else
  Response.Write "<b>Rutenavn: </b>" & rs("Rutenavn") & "<br><hr color='#000000' size='1'><br>"
End if

rs.MoveNext
Loop While NOT rs.EOF

End if

Conn.Close
Set Conn = Nothing

%>

</body>

</html>
Avatar billede eagleeye Praktikant
21. august 2002 - 22:00 #17
Det kunne også misforstås som jeg ført havde skrevet det. :)
Avatar billede eagleeye Praktikant
21. august 2002 - 22:00 #18
Nu mangler  FirstPost = True oppe foran Do:

FirstPost = True
Do
Avatar billede exp-ralle Nybegynder
21. august 2002 - 22:02 #19
hov, nu virker det næsten.
Det er bare den sidste der får en <hr> og det skal være den første (altså efter den første skal der være en og ikke efter den sidste)
Avatar billede exp-ralle Nybegynder
21. august 2002 - 22:05 #20
det fixede jeg lige selv, det behøvede man jo ikke meget viden til :)

thx alle
Avatar billede eagleeye Praktikant
21. august 2002 - 22:06 #21
Ok.. Så er det en anden løsning, så har jeg løst di spørgsmål forkert ;)


Så lav disse linier:

FirstPost = True
Do

Response.Write "<b>Længde: </b>" & rs("Længde") & " km.<br>"
Response.Write "<b>Tid: </b>" & rs("Tid") & " min.<br>"
Response.Write "<b>Dato: </b>" & rs("Dato") & "<br>"
If FirstPost = True Then
  FirstPost = False
  Response.Write "<b>Rutenavn: </b>" & rs("Rutenavn") & ""
Else
  Response.Write "<b>Rutenavn: </b>" & rs("Rutenavn") & "<br><hr color='#000000' size='1'><br>"
End if

rs.MoveNext
Loop While NOT rs.EOF


-- OM til dette:

Do
'udskriv nyheden eller havd det er
  Response.Write "<b>Længde: </b>" & rs("Længde") & " km.<br>"
  Response.Write "<b>Tid: </b>" & rs("Tid") & " min.<br>"
  Response.Write "<b>Dato: </b>" & rs("Dato") & "<br>"

  Response.Write "<b>Rutenavn: </b>" & rs("Rutenavn") & ""

'Flyt til næste
  rs.MoveNext

'Hvis der er flere records indsæt en <hr>
  if not rs.eof then
    Response.write "<br><hr color='#000000' size='1'><br>"
  end if
Loop While NOT rs.EOF
Avatar billede exp-ralle Nybegynder
22. august 2002 - 17:10 #22
Mange tak
Du har reddet mit liv endnu en gang eagleeye ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester