Autor | Zpráva | ||
---|---|---|---|
souki Profil |
#1 · Zasláno: 20. 1. 2007, 11:12:14
Mám tabulku pristupy kam ukládám každého návštěvníka, který si přečte článek. Tabulka má sloupce id, ip, clanek.
Potřebuji udělat součet přístupů na jednotlivé články tak, že každá IP se u každého článku započítá jen jednou. Původně jsem chtěl udělat GROUP BY ip, ale tím se započítal přístup jedné ip pouze jednomu článku. Můžete mě prosím nakopnout správným směrem? |
||
PP Profil * |
#2 · Zasláno: 20. 1. 2007, 11:59:24
Select dáš zoradiť podľa ip.
$pole=array(); while(vies co) { if ($last_ip==$result[1]) continue; $pole['$result[2]]++; $last_ip=$result[1]; } Výstup máš pole. Klúč je článok, hodnota počet prístupov. |
||
souki Profil |
#3 · Zasláno: 20. 1. 2007, 12:03:02
Tato možnost je jasná. Šlo mi spíš o to, zda to jde udělat na straně databáze, tzn "hezky"
|
||
PP Profil * |
#4 · Zasláno: 20. 1. 2007, 12:16:25
To by ma tiež zaujímalo. Škoda, že si pri zápise do tabulky neoveroval či už je ip zapísaná k článu a vtedy by si spravil len update +
|
||
nightfish Profil |
#5 · Zasláno: 20. 1. 2007, 12:22:49 · Upravil/a: nightfish
SELECT clanek, count( DISTINCT ip ) FROM pristupy GROUP BY clanek
výsledkem jsou dvojice id článku - počet unikátních ip adres (mySQL 5.0.27 - jak to funguje na starších verzích nemám ponětí) |
||
souki Profil |
#6 · Zasláno: 20. 1. 2007, 12:23:53
PP
Ověřoval. Ale pak jsem to zrušil. Jde mi spíš o techniku. Kromě IP chci ještě počítat přístupy podle SID a pak neunikátní. Zajímalo by mě ale, jak se taková věc dá v MySQL udělat. Mám tušení, že by to šlo nějak přes vnořené dotazy, ale stále nemůžu přijít na to, jak |
||
souki Profil |
#7 · Zasláno: 20. 1. 2007, 12:26:34
nightfish
Děkuji mnohokrát. Vůbec jsem netušil, že může mít COUNT takovou syntaxi. Funguje to i na MySQL 4.1 |
||
nightfish Profil |
#8 · Zasláno: 20. 1. 2007, 12:27:44
souki
já jsem to taky netušil, nicméně vyzkoušel jsem a fungovalo... zamykám |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0