счетчик кликов изображений - PullRequest
0 голосов
/ 06 февраля 2011

Есть ли способ подсчитать, сколько раз изображение было нажато.И после того, как изображение щелкнуло, оно отображалось?

В настоящее время я извлекаю случайные изображения из базы данных и хочу показать, какая из них была нажата больше всего.

<html>   <body>

<div style="float:left"> <?php // Connect to the database mysql_connect ('localhost', 'root') ; mysql_select_db ('links'); 

// Number of images $num_displayed = 1 ;

// Select random images from the database $result = mysql_query ("SELECT * FROM links ORDER BY RAND() LIMIT $num_displayed"); 

// For all the rows that are selected while ($row = mysql_fetch_array($result)) 

// Display images { echo "<a href=\"".$row["link"]."\"><img src=\"".$row["image"]."\" border=0 alt=\"".$row["text"]."\"></a>"; } ?> </div>

<div style="float:left; margin-left:100px"> <?php include("image2.php"); ?>

</div> </body> </html>

спасибо.

Ответы [ 3 ]

0 голосов
/ 06 февраля 2011

Создание триггера в таблице изображений для подсчета выбора

CREATE TRIGGER `database_name`.`trigger_name` BEFORE SELECT INSERT ON
    `database_name`.`images_table_name` FOR EACH ROW
BEGIN
    UPDATE
        `database_name`.`images_table_name`
    SET
        `database_name`.`images_table_name`.`counter` = `database_name`.`images_table_name`.`counter` + 1
    WHERE
        `database_name`.`images_table_name`.`id` = NEW.`id`;
    END$$

Выполнение упорядочения запросов по полю счетчика.

Для регистрации кликов реализует трекер кликов, запрашивающий обновление во втором поле,как "клики"

0 голосов
/ 06 февраля 2011

Как насчет подсчета каждый раз, когда изображение отображается? Это вариант, если и только если нет других изображений, которые могут быть ему полезны при работе средства просмотра альбомов изображений.

Используйте php для рендеринга изображения и запустите там небольшой скрипт, который увеличивает количество щелчков (или отображений) этого изображения. В качестве альтернативы вы можете создать запись для каждого отображения изображения, сохраняя гораздо больше, возможно, интересной информации, такой как image, last_view, ip, count и / реферер (если он работает; не тестировался). Запись IP позволит вам отслеживать уникальные просмотры с подсчетом, показывающим, сколько раз они просматривали изображение; это зависит от того, как вы это реализуете.

$name = trim($_GET['img']);
if (!isset($_GET['img'] || empty($name)) {
    // Check url var wasn't omitted or typed incorrectly.
    die("Image not specified.");
}

// This is just an example path. It would be a good idea to specify a path
// like this to ensure that people don't try and use it to display files
// that you wouldn't want them too. 
//eg. images you don't want to keep records of.
$image = "/images/$name"; 

$date  = time();
$ip    = $_SERVER['REMOTE_ADDR'];
$ref   = $_SERVER['HTTP_REFERER'];

if (!file_exists($image)) {
    // Ensure that something exists at $image
    die("Invalid image.");
}

$f = fopen($image, 'r');
if (!$f) {
    // Make sure that the contents of the file can be opened.
    die("Unable to open image.");
}

$info = @imagegetsize($image);
if (!$info) { 
    // This is to make sure that the $image contains a path 
    // to an image not just a regular file.
    die("Invalid image type."); 
}

Header("Content-type: {$info['mime']}");
echo fread($f, filesize($image));

fclose($f);

/****************
 * Script for saving image 'click' information.
 ***************/

exit;

Показать изображение как это

<img src="/image.php?img=example.png" />

Если у вас возникли проблемы, и изображения отображаются правильно, откройте путь в браузере, чтобы увидеть ошибки.

0 голосов
/ 06 февраля 2011

Вы можете сделать это, используя javascript:

В теге head:

<script type="text/javascript">
    var count = 0;
    function changevar(){
            count = count + 1;
        if (count == 3) {
             alert('Done');
        }
    }
        </script>

В теге body:

<img src="image.png" onClick="changevar()"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...