Есть ли способ подсчитать, сколько раз изображение было нажато. И как только изображение будет нажато, отобразится ли оно?
В настоящее время я вынимаю случайные изображения из базы данных и хочу показать, на что было нажато больше всего.
<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>
спасибо.
Создайте триггер в таблице изображений, чтобы подсчитать выбор
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$$
Выполните упорядочение запросов по полю счетчика.
Чтобы зарегистрировать клики, внедряет отслеживатель кликов, запрашивающий обновление во втором поле, например "клики"
Как насчет подсчета каждый раз, когда изображение отображается? Это вариант в том и только в том случае, если нет других изображений, которые могут быть с ним в том виде, в котором работает просмотрщик фотоальбомов.
Используйте php для рендеринга изображения и запустите небольшой script, который увеличивает количество раз, когда это изображение было нажато (или отображено). В качестве альтернативы вы можете создать запись для каждого отображения изображения, экономя много более интересной информации, такой как изображение, last_view, ip, count и /referrer (если оно работает, непроверено). Запись 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" />
Если у вас возникают проблемы и изображения отображаются правильно, откройте путь в своем браузере, чтобы увидеть ошибки.
Вы можете сделать это, используя 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()"/>
INCR