ASP & Statistik

Seite 1 von 2 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/asp_amp_statistik_28551/page_1 - zur Vollversion wechseln!


Cyberlord schrieb am 14.03.2002 um 03:55

Ich hab mit ASP eine Tabelle erstellt. In dieser Tabelle ist ersichtlich, welche IP-Adressen zu welcher Zeit zugegriffen haben.
Jetzt möchte ich diese Liste zusammenfassen und nur die Top 10 IP-Adressen (also wer am häufigsten in der Liste aufscheint) anzeigen lassen und nach der häufigkeit sortieren.
Hab mir überlegt, daß das nur mit einem Array zu verwirklichen sein kann. Habe aber keine Ahnung wie ich das genau anstellen soll.

Für jeden Tip wäre ich sehr froh!


Joshua schrieb am 14.03.2002 um 09:32

ASP :D :D :D :D :p :confused: :rolleyes: :cool: :eek: :mad: :( :( :D :rolleyes: :confused: :eek:


Cyberlord schrieb am 14.03.2002 um 09:39

Lern du zuerst amoi HTML.
*g*


Joshua schrieb am 14.03.2002 um 09:41

für was brauchst du a statistik auf deiner Site?

Damit siehst wann du selbst drauf warst? :D :D :D :D


Cyberlord schrieb am 14.03.2002 um 09:45

*g*

Wenn wer einen Tip hat bitte schreiben, und nicht nur spammen.


Joshua schrieb am 14.03.2002 um 09:50

Zitat von Cyberlord
*g*

Wenn wer einen Tip hat bitte schreiben, und nicht nur spammen.

Spammen? was ist das? :eek: :D :confused:


schrieb am 14.03.2002 um 10:03

aaalso: entweder du rechnest ganz stupid für jede gefundene IP im recordset in einem array +1 - das wird aber sehr unschön, wenns mehr als 10 verschiedene ips sind.

alternativ kannst du auch einen "count" im sql-statement machen.

also schleife, die für jede gefundene ip adresse (zu finden per "select distinct f_ip from t_table") einen "select count (f_ip) from t_table where f_id = 'gefundene ipadresse')" macht.

jo, so gehts. gibt sicher noch performantere lösungen (per stored procedure usw), aber so gehts auf die schnelle auch. :)


Cyberlord schrieb am 14.03.2002 um 10:12

Ah danke!

Werds mit DISTINCT probieren.
thx


schrieb am 14.03.2002 um 10:17

Zitat von Cyberlord
Ah danke!

Werds mit DISTINCT probieren.
thx

das schlüsselwort "distinct" bringt dir aus einer table mit vielen ip adressen jede ip adresse genau ein mal.

dann weißt du, wieviel unterschiedliche besucher auf deiner seite waren.

für jede dieser eindeutigen adressen kannst du dann einen "count" machen.

aber das hab ich eh schon oben geschrieben :)


Cyberlord schrieb am 14.03.2002 um 11:46

Habs jetzt so geschrieben:

<%
Set conn = Server.CreateObject("ADODB.Connection")
strconn = "database1"
conn.Open = strconn
sql="select distinct ip from history"
set RS1 = conn.Execute(sql)

do until RS1.eof
Response.Write RS1("ip")
iptemp = RS1("ip")

sqltop="select count(*) as counter from history where ip='" & iptemp & "'"
set RS2 = conn.Execute(sqltop)

do until RS2.eof
response.write "  " & RS2("counter") & "<br>"
RS2.movenext
loop

RS1.movenext
loop


RS1.close
RS2.close
conn.close
%>

Jetzt hab ich eine SQL-Abfrage in einer SQL-Abfrage.
Ist sicher nicht das Beste. Gehts vielleicht anders auch?
Wie kann ich jetzt nach "Counter" sortieren? Das ist ja jetzt kein normaler Spaltenname.


Cyberlord schrieb am 14.03.2002 um 14:53

@ rettich

Hab jetzt den richtigen SQL-Befehl:

SELECT count(history.ip) as Anzahl_IP, history.ip FROM history RIGHT JOIN history AS history1 ON history.ip = history1.ip GROUP BY history.ip ORDER BY count(history.ip) DESC

So funkts, und nicht anders.
Danke trotzdem!


schrieb am 14.03.2002 um 17:12

hehe, klar funkts so auch; aber anders auch :)

performanter ist natürlich das zweite, weils direkt vom server aufgelöst wird.


schrieb am 14.03.2002 um 17:48

OMFG! leute kennts ihr kein Group by?
select ip, count(*) from history group by ip order by count(*) limit 10;


schrieb am 14.03.2002 um 19:40

Zitat von .deRElict.
OMFG! leute kennts ihr kein Group by?
select ip, count(*) from history group by ip order by count(*) limit 10;

erstens sagst ma, wie ich auf an mssql server ein limit mach und
zweitens macht das group by so nicht ganz das richtige :confused:

ah, wart, doch. stimmt schon. :)


Cyberlord schrieb am 15.03.2002 um 02:11

thx

Funkt jetzt so auch.




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026