Брояч на посещения на снимки(страница)

vinsbg

Registered
Здравейте,

искам да добавя на всяка снимка, която е отваряна да добавя +1 към таблицата.
Имам следното:
Код:
$result = $pdo->prepare("SELECT * FROM images ORDER BY id ASC LIMIT $start_from, 50");
                $result->execute();

                for($i=0; $row = $result->fetch(); $i++)
                {
				   echo '                                    
                                    <h1><a href="post.php?id='.$row['id'].'">'.$row['title'].'</a></h1> 
                                        <img src="../upload/'.$row['name'].'" alt=""/>';
                }

Показвам на страницата 50 снимки и искам, когато някой отвори снимката, след като кликне на тайтъла да запише за това ID + 1 примерно в таблицата т.е. 1 отваряне и така да се натрупват.

Създал съм нова колона, която се казва hits, но не ми ясно как точно ще стане.
Това, което се сещам е че ще бъде някакъв ъпдейт, но как точно да го "вградя" в кода?
Сигурно нещо подобно?
Код:
    UPDATE `images` SET `hits` = `hits` + 1 WHERE id=imageID;

п.п.
Или трябва нова таблица примерно - counter и нея да я линкна към поле в таблица images?

ЕДИТ:
Аз мисля, че се оправих и сам, но моля ако някой има забележки към моето решение нека ме поправи.
На новата страница, която се отваря в случая page.php първо ъпдейтвам и после селектвам снимката, за да я покажа:
Код:
$result = $pdo->prepare("UPDATE images SET hits = hits + 1 WHERE id = ?");
            $result->execute(array($_GET['id']));
             $result = $pdo->prepare("SELECT * FROM images WHERE id= ?");
            if ($result->execute(array($_GET['id']))) {
 
На верен път си , помисли още кое първо трябва да правиш .

Лек жокер: отвори си page.php?id=1 примерно и рефрешни страницата 20 пъти и си погледни базата данни . Като стигнеш до там ще помагаме : ))
 
stoqnski каза:
На верен път си , помисли още кое първо трябва да правиш .

Лек жокер: отвори си page.php?id=1 примерно и рефрешни страницата 20 пъти и си погледни базата данни . Като стигнеш до там ще помагаме : ))
В случая редът на действията е без значение - дали първо ще селектне и после ще ъпдейтне или обратното е все едно. Друго е решението :)
 
stoqnski каза:
На верен път си , помисли още кое първо трябва да правиш .

Лек жокер: отвори си page.php?id=1 примерно и рефрешни страницата 20 пъти и си погледни базата данни . Като стигнеш до там ще помагаме : ))

Предполагам говориш за от едно IP да брои веднъж, а не на всеки рефреш? Ако е това, сетих се за него, но на мен не ми трябва...поне засега. Искам просто да брой отварянията.
 
vinsbg каза:
stoqnski каза:
На верен път си , помисли още кое първо трябва да правиш .

Лек жокер: отвори си page.php?id=1 примерно и рефрешни страницата 20 пъти и си погледни базата данни . Като стигнеш до там ще помагаме : ))

Предполагам говориш за от едно IP да брои веднъж, а не на всеки рефреш? Ако е това, сетих се за него, но на мен не ми трябва...поне засега. Искам просто да брой отварянията.

Ами това е най-простото решение , което си направил:

Добавяш едно поле примерно `clicks` int(11) default null примерно и за всеки уникален запис(страница) имаш в заявката ...UPDATE таблица SET clicks = clicks + 1 WHERE id = $currentID ...
Това е масовата практика като цяло .
 
Да.. не разбрах обаче, какво искаше да кажеш с предния пост
Лек жокер: отвори си page.php?id=1 примерно и рефрешни страницата 20 пъти и си погледни базата данни . Като стигнеш до там ще помагаме : ))
 
vinsbg каза:
Да.. не разбрах обаче, какво искаше да кажеш с предния пост
Лек жокер: отвори си page.php?id=1 примерно и рефрешни страницата 20 пъти и си погледни базата данни . Като стигнеш до там ще помагаме : ))

Исках да кажа,че няма проверка т.е. клиента ако обнови страницата , заявката ще се изпълни отново и отново и отново , затова е желателно да проверяваш нещо преди ъпдейта . Примерно може се ориентираш към бисквитка ( cookies ) , която е примерно 24часа.
 
stoqnski каза:
vinsbg каза:
Да.. не разбрах обаче, какво искаше да кажеш с предния пост
Лек жокер: отвори си page.php?id=1 примерно и рефрешни страницата 20 пъти и си погледни базата данни . Като стигнеш до там ще помагаме : ))

Исках да кажа,че няма проверка т.е. клиента ако обнови страницата , заявката ще се изпълни отново и отново и отново , затова е желателно да проверяваш нещо преди ъпдейта . Примерно може се ориентираш към бисквитка ( cookies ) , която е примерно 24часа.
Разбрах, но както казах по-горе това не е от значение. Няма проблеми да си записва на всеки рефреш от един и същи човек..
 

Back
Горе