Autor Zpráva
Jack06
Profil
Dobrý den, rád bych se zeptal, jak na jednu věc:
Mám tabulku:
CREATE TABLE agent (
  enter DATETIME NOT NULL,
  who VARCHAR(60) NOT NULL,
  enter_page VARCHAR(50) NULL,
  PRIMARY KEY(enter)
);


No vždy když se na danou stránku připojí někdo přihlášený, tak se jeho vstup zaznamená do tabulky, takže tam je nakonec například 20x Franta s ruznými časy.
Chtěl bych tabulku vypsat sloupcově, aby se zobrazil vždy každý jen jednou, s tím že když by se na danou stránku podíval víckrát dalo by se na něj kliknout abych mohl přejít na stránku s rozšířeným auditem.

příklad:

tabulka:
2009-04-12 14:49:31  |  Franta  |  index
2009-04-12 14:55:20  |  Honza  |  index
2009-04-12 15:21:10  |  Kouba  |  index
2009-04-12 17:19:01  |  Franta  |  index
2009-04-12 18:11:45  |  Joudal  |  index


Výpis kdo navštívil index:

14:49 <a href="...">Franta</a>
14:55 Honza  
15:21 Kouba 
18:11 Joudal  

Nejspíše bych to dělal přes pole, kde bych kontroloval existenci, ale ptám se zda existuje nějaký jiný fígl. :-)
Joker
Profil
Jack06:
Tak to v dotazu seskupte podle jména (přes GROUP BY). Použitím COUNT můžete i vypsat, kolik přístupů od daného uživatele je.
No a po kliknutí na detaily by se udělal nový výběr z databáze se všemi řádky toho jednoho uživatele.

Mimochodem, proč k identifikaci uživatele používáte VARCHAR, tj. asi jméno, a ne nějaké jednoznačné ID? Co když budou mít dva uživatelé stejné jméno? Nebo co když někomu budete chtít jméno změnit?
Jack06
Profil
nene tam bude zapisován email nikoliv jméno
Joker
Profil
Jack06:
tam bude zapisován email nikoliv jméno
Co když někdo bude potřebovat změnit kontaktní e-mail (to jsem mimochodem viděl v reálu- aplikace neumožňovala změnit e-mailovou adresu a po nějaké době provozu se začaly hromadit problémy lidí, kteří ztratili přístup ke schránce přes kterou se zaregistrovali, čímž nemohli dostat třeba potvrzovací kód pro změnu hesla a podobně)?
mattyZEM
Profil
Dej tam id(11), a u příkazu použij left join
$pr=mysql_query("SELECT * FROM agent a LEFT JOIN users u ON (a.who = u.uid) .....");
Jack06
Profil
Joker:
Co když někdo bude potřebovat změnit kontaktní e-mail (to jsem mimochodem viděl v reálu- aplikace neumožňovala změnit e-mailovou adresu a po nějaké době provozu se začaly hromadit problémy lidí, kteří ztratili přístup ke schránce přes kterou se zaregistrovali, čímž nemohli dostat třeba potvrzovací kód pro změnu hesla a podobně)?

Toto bude jen přístupová tabulka, aby se vědělo max týden dozadu, kdo kde lítal.. Jen informativní, takže bude možnost změny.. Každopádně uvidím možná tam dám nakonec to id, jen se mi kvůli takovéto banalitě nechtělo zbytečně připojovat do dalších tabulek

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0