Platzierung einer seite errechnen und ausgeben
Ravenhawk
- php
Hi
Ich habe ein Problem und komme hier echt nicht weiter... ich habe eine MYSQL-Tabelle in der seitenaufrufe gespeichert werden:
Tabelle:
counter_id | date | time
counter1 | 13.01.2005 | 21:26
counter2 | 13.01.2005 | 21:26
counter1 | 13.01.2005 | 21:26
counter1 | 13.01.2005 | 21:26
counter3 | 13.01.2005 | 21:26
counter3 | 13.01.2005 | 21:26
counter4 | 13.01.2005 | 21:26
Mit der Abfrage kann ich die Rankliste generieren:
select count(counter_id) AS aufrufe, counter_id from count group by aufrufe desc
Ausgabe der SELECT-Abfrage:
aufrufe | counter_id
3 | counter1
2 | counter3
1 | counter2
1 | counter4
Nun die frage:
Wie kann ich nur für eine Seite Abfragen, an welchem Platz die Seite in der Rankliste steht?
Ich möchte lediglich auf der seite mit der z.B. counter_id 1 ausgeben, das sie auf platz 1 steht.
Wie kann ich das realisieren? Geht das mit einer Abfrage ohne dazu die gesammte Tabelle abzufragen?
Ravenhawk
Ho
Wie kann ich nur für eine Seite Abfragen, an welchem Platz die Seite in der Rankliste steht?
Ich möchte lediglich auf der seite mit der z.B. counter_id 1 ausgeben, das sie auf platz 1 steht.
Schon was von der WHERE- Klausel gehört?
select count(*) AS aufrufe, from count WHERE counter_id = 'counter1'
LG Kalle
Sorry,
du wolltest ja den PLATZ wissen und nicht die Anzahl der Aufrufe. Da muss ich noch mal grübeln ...
also, wenn es gelingt, deiner bisherigen Liste als weitere Spalte eine laufende Nummer zu verpassen (das Ranking), etwa so:
Ausgabe der neuen SELECT-Abfrage:
lfd | aufrufe | counter_id
1 | 3 | counter1
2 | 2 | counter3
3 | 1 | counter2
4 | 1 | counter4
dann kannst du nach dem GROUP BY die Treffer mit der HAVING- Klausel weiter einschränken:
select **lfd**, count(counter_id) AS aufrufe, counter_id from count group by aufrufe desc HAVING counter_id = 'counter1'
Ich weiss nur im Moment nicht, wie man eine Zählnummer generiert.
LG Kalle