Počítadlo zobrazení článků
- Lazius
- Člen | 9
Zdravím,
řeším jak napsat počitadlo zobrazení článku. Něco jsem tu našel a pochytil, ale ne konkrétně to co chci.
U každého článku po zobrazení v databázi inkrementuji hodnotu zobrazení článku. Ale chci aby každý uživatel byl zaznamenán pouze jednou. Toho bych chtěl docílit pomocí session. Nejde mi o žádné neprůstřelné řešení, počitadlo má pouze orientačně informativní charakter.
Jakým způsobem mám, ale v session reprezentovat id článku. Jelikož je to moje první práce se session v nette, tak nevím jak začít. Session rozběhnu, ale jak dál uložit informaci, že si to uživatel přečetl?
- CZechBoY
- Člen | 3608
Já bych si to ukládal třeba do listu integerů.
$section = $this->session->getSection('ankety');
$section['id_anket'][] = $id_ankety; // pro tuhle jsem ted hlasoval
if (in_array($id_ankety, $section['id_ankety'], true)) { // uz hlasoval
$this->flashMessage('Už jsi hlasoval');
} else { // nehlasoval
$this->model->hlasuj($id_ankety, $this->user->getId());
}
Editoval CZechBoY (9. 8. 2016 19:53)
- matopeto
- Člen | 395
No mozno miesto:
$section['id_anket'][] = $id_ankety;
a testu:
in_array($id_ankety, $section['id_anket'], true)
by som pouzil
$section['id_anket'][$id_ankety] = true;
a test
array_key_exists($id_ankety, $section['id_anket'])
Je to rychlejsie a nemusi sa vzdy prechadzat cele pole.
Editoval matopeto (15. 8. 2016 16:26)