Avatar billede no_doubt Nybegynder
07. december 2002 - 19:25 Der er 11 kommentarer og
1 løsning

optælling

hvordan skal sql stregen se ud hvis den bare skal tælle antal id'er i databasen ?
Og hvad med javascriptet, noget der skal ændre med ?

<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source="& Server.MapPath("db.mdb")

strSQL = "SELECT COUNT(fornavn) AS personer FROM brugere"
Set objRs = objConn.Execute(strSQL)
%>
<p><script language="JavaScript"><!--
c = 0
function count3(){
document.getElementById("layer3").innerText = c;
if (c!=<%= objRs("personer") %>){
c++;
}
setTimeout("count3()",50)
}
// --></script></p>
    <p align="left"><font face="Arial"><small><strong>Antal bruger ialt i databasen:</strong></small></font></td>
    <td><b><div id="layer3" style="font-size: 12; font-family: arial;"></div>
Avatar billede Lasse Novice
07. december 2002 - 19:30 #1
hvis du skal taelle antal ID'er saa skal den nok se saaledes ud:
SELECT COUNT(id) AS ID FROM brugere

nede i javascript
if (c!=<%= objRs("ID") %>){
c++;
Avatar billede coldray Nybegynder
07. december 2002 - 19:32 #2
Do while NOT objRs.EOF
antal = antal + 1
Loop
Response.write "Der er ialt: " & antal & " id'er i databasen"
Avatar billede coldray Nybegynder
07. december 2002 - 19:32 #3
damn.. :)
Avatar billede Lasse Novice
07. december 2002 - 19:33 #4
i det hele taget ser det lidt maerkeligt ud det du laver. Jeg ved selvfoelgelig ikke hvad det lige praecis er du vil, men hvorfor have alt dette inde i et DIV tag + javascript indblandet.

<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source="& Server.MapPath("db.mdb")

strSQL = "SELECT COUNT(fornavn) AS personer FROM brugere"
Set objRs = objConn.Execute(strSQL)
%>
    <p align="left"><font face="Arial"><small><strong>Antal bruger ialt i databasen:</strong></small></font></td>
    <td><b>!=<%= objRs("personer") %></b></td>
Avatar billede Lasse Novice
07. december 2002 - 19:34 #5
coldray>>

hvorfor
Do while NOT objRs.EOF

naar du laver en COUNT i din SQL saetning....?
Avatar billede no_doubt Nybegynder
07. december 2002 - 19:45 #6
gooky.. jeps

et svar ?
Avatar billede no_doubt Nybegynder
07. december 2002 - 19:47 #7
tror du jeg kan få skrevet det ud, uden at det er i et div ?
Avatar billede Lasse Novice
07. december 2002 - 19:56 #8
ok, jeg er ikke helt sikker paa det du vil, men som det ser ud, saa som jeg laeser det saa:

du har en tabel der hedder brugere. Den har foelgende kolonner:

id, fornavn, efternavn


Du vil gerne have hvor mange personer der er ialt i databasen, og til det kan du bruge foelgende SQL saetning:

SELECT COUNT(fornavn) AS personer FROM brugere

en noget mere sigende SQL saetning ville dog vaere

SELECT COUNT(*) AS AntalPersoner FROM brugere

Det giver det samme resultat, men naeste gang du laeser det, saa vil det virke mere logisk. Naa, men nok om det.

Det denne SQL saetning returnerer er et tal mellem 0 og uendelig. Dvs. du returnerer hvor mange brugere der er. For at proppe det ind paa din hjemmeside skriver du

<%= objRs("personer") %>     

--hvis du bruger din egen metode eller

<%= objRs("AntalPersoner") %>     

--hvis du bruger min

Lige praecis dette returnerer antaller, saa der hvor du propper det ind i dit ASP dokument, kommer der til at staa antallet af brugere. Du behoever ikke at tage det over i javascript. Du - som jeg laeser det - vil gerne have det i et tabel element. Derfor goer du saaledes:

<table border=1>
<tr>
<td>
<%= objRs("personer") %>
</td>
</tr>
</table>

og det vil komme ind i din tabel. Men du behoever ikke proppe det ind i din tabel. Du kan ogsaa bruge tallet udenfor din tabel.

altsaa som dette:

<HTML>
<%= objRs("personer") %>
</HTML>


eller hvis du gerne vil bruge dette tal til noget i din javascript kode, saa goer du det:

<script language="JavaScript"><!--
c = <%= objRs("personer") %>
alert(c)
// --></script>
Avatar billede Lasse Novice
07. december 2002 - 19:58 #9
et svar som sagt
Avatar billede no_doubt Nybegynder
07. december 2002 - 20:11 #10
øhh, det min kode :
<body onload="count();" topmargin="0" leftmargin="0">
<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source="& Server.MapPath("db.mdb")

strSQL = "SELECT COUNT(id) AS ID FROM brugerliste"
Set objRs = objConn.Execute(strSQL)
%>

<p><script language="JavaScript"><!--
c = 0
function count(){
document.getElementById("layer3").innerText = c;
if (c!=<%= objRs("ID") %>){
c++;
}
setTimeout("count()",100)
}
// --></script></p>
<div id="layer3" style="text-align:center;" "font-size: 12; font-family: arial;"></div>
gør er at tage 1 tal af gange ligge en til indtil vi rammer det samlede antal fra databasen, men da jeg synes divs er lidt uhandige ville jeg gerne have et stykke javascript der viste optællingen *s* derved kunne jeg også nemmere flyttet rundt på det. I tabeller osv.
Avatar billede no_doubt Nybegynder
12. december 2002 - 16:03 #11
ik noget yderligere gooky ?
Avatar billede Lasse Novice
12. december 2002 - 16:51 #12
ahh, undskyld... jeg har ikke lige set at du har skrevet...

Jeg tror du misforstaar noget, eller ogsaa er der mig der intet fatter af hvad du vil.

SELECT COUNT(id) AS ID FROM brugerliste

returnerer eet tal, hvilket er antal ID'er i din brugerliste. Dvs. at naar du skriver <%= objRs("ID") %> faar du det tal ud. ***** Dette er en konstant vaerdi *****. Dvs. at HVER gang du koerer ind i IF saetningen saa er vaerdien den samme som alle tidligere gange du har spurgt.

Som det ser ud for mig goer du foelgende:

Paa et eller andet tidspunkt kalder du funktionen Count. Du har en counter(c). i denne funktion, hvilken er lig 0 til at starte med. Vaerdien af counteren saetter du ind i dit DIV element. Derefter spoerger du om konstanten "Antal ID'er i brugerliste" er det samme som counteren. Hvis ikke, opdater counteren. Efter 100 ms, koer count igen.

Det du faar ud af dette her(hvilket maaske ogsaa er formaalet, er at du faar en javascript variable(c) der ender med at have vaerdien "Antal ID'er i brugerliste". En sideeffekt(hvilken er YDERST uheldig), er at du staar og kalder en funktion for EVIGT(count). Hvis du ikke ligefrem skal bruge c, saa skip ALT javascript, og istedet for <div>, indsaet <%= objRs("ID") %>.

Hvis du er interesseret i at der skal vaere en javascript variable med denne vaerdi(hvilken du skal bruge til noget HEEELT andet end dette), saa kan du goere det ved dette simple kald:
<script language="JavaScript"><!--
c = <%= objRs("ID") %>
--></script>

Haaber det hjaeper lidt paa det.
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