Интересно, как мне изменить этот существующий код, чтобы отслеживать клики / представления изображений / баннеров? Возможно ли это только с помощью PHP или вам нужно использовать jQuery (ajax)?
У меня есть bannerClicks
и bannerViews
внутри tblbanners
в моей таблице MYSQL.
Это код для создания изображения / баннера:
$query91 = 'SELECT * FROM tblbanners WHERE tblbanners.bannerStatus!=\'1\''; $result91 = full_query ($query91); $bannerCounter = 1; while ($data91 = mysql_fetch_array ($result91)) { $ID = $data91['ID']; $bannerName = $data91['bannerName']; $bannerLocation = $data91['bannerLocation']; $bannerUrl = $data91['bannerUrl']; $bannerCode[$bannerCounter] = '<a id="' . $ID . '" class="banner-url" href="' . $bannerUrl . '" target="_blank"><img alt="' . $bannerName . '" src="banners/' . $bannerLocation . '" width="100px" height="200px" /></a>'; $bannerCounter++; } $bannerAdTotals = $bannerCounter - 1; if($bannerAdTotals > 1) { mt_srand((double)microtime() * 1234567); $bannerPicked = mt_rand(1, $bannerAdTotals); } else { $bannerPicked = 1; } $bannerAd = $bannerCode[$bannerPicked]; print $bannerAd;
Вы можете использовать JavaScript или перехватывать клики. Чтобы перехватить клики, предположив, что вы храните URL-адрес баннера в базе данных, вы можете просто настроить PHP-скрипт для перехвата клика, отслеживания клика, а затем перенаправления. Что-то простое:
<?php $sql = "SELECT `url` FROM `banners` WHERE `id` = :banner_id LIMIT 1"; $stmt = $db->prepare($sql); $stmt->bindParam(':banner_id', $_GET['id'], PDO::PARAM_INT); $stmt->execute(); $banner = $stmt->fetchObject(); $sql = "INSERT INTO `clicks` (`banner_id`) VALUES (1)"; $res = $db->exec($sql); header('Location: ' . $banner->url);
Очевидно, вам понадобится создать соединение с базой данных / объектом, изменить любую таблицу базы данных и имена столбцов и любую проверку.
При таком подходе, когда вы показываете свой баннер, вы делаете это вместо этого при выборе баннера из своей базы данных:
<a href="track_click.php?id=<?php echo $banner->id; ?>"> <img src="<?php echo $banner->img; ?>" alt="<?php echo $banner->alt; ?>" /> </a>