Банер ротация с MySQL
Автор: BG_NIKE
Урока е изготвен от мен за HunteR. Благодарности на hrischo,че ми помогна за някои неща. Smile
С тази система можем да добавяме банери и да показваме на случаен принцип по един.След като даден банер бъде показан 5000 пъти вече няма да се показва.
Ще трябва да създадем три файла:
conf.pgp
add.php
banners.php
conf.php
<?php
$host="localhost"; // хост
$user="потребител"; / /потребител
$pass="парола"; // парола
$db="banner"; // база данни
$rw="banner"; // таблица
?>Настройваме връзката с MySQL
add.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251" />
<title>Банери</title>
</head>
<body>
<form action="" method="post"><b>Добавяне на банер: </b><br />
Адрес на сайта:<input type="text" size="25" name="url"><br />
Линк към банера:<input type="text" size="25" name="picurl"><br />
<input type="submit" name="submit" value="Добави">
</form>
</body>
</html>
<?php
include("conf.php");
if ($_POST['submit']){
$url = $_POST['url'];
$picurl = $_POST['picurl'];
if ((empty($url)) or (empty($picurl))){
echo "Не си попълнил всички полета!";
exit;
}
$url = htmlspecialchars($url);
$url = addslashes($url);
$picurl = htmlspecialchars($picurl);
$picurl = addslashes($picurl);
mysql_connect($host,$user,$pass);
$chars="SET CHARACTER SET cp1251";
@mysql_select_db($db) or die( "Unable to select database");
mysql_query($chars);
$query = "INSERT into $rw (id,url,picurl) VALUES (NULL,'$url', '$picurl')";
mysql_query ($query);
$command = "SELECT * FROM $rw WHERE impresii > 5000";
$result_command = mysql_query($command);
$row_command = mysql_fetch_array($result_command);
if($row_command)
{
$zaqvka = mysql_query("DELETE FROM $rw WHERE impresii > 5000");
}
echo "Банера е добавен успешно!";
}
?>Чрез този файл добавяме банер.
banners.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251" />
<title>Банери</title>
</head>
<body>
<?php
include("conf.php");
mysql_connect($host,$user,$pass);
$chars="SET CHARACTER SET cp1251";
@mysql_select_db($db) or die( "Unable to select database");
mysql_query($chars);
$query = "SELECT * FROM $rw WHERE impresii < 5000 ORDER BY RAND() LIMIT 1";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result);
$url = $row[url];
$pic = $row[picurl];
$imp = $row[impresii];
$update = "UPDATE $rw SET impresii=impresii+1 WHERE id='$row[id]'";
$res = mysql_query($update);
$broi = mysql_numrows($result);
if ($broi == 0) {
echo "Няма добавени банери.";
} elseif ($broi > 0) {
?>
<a href="<?=$url?>" target="_blank"><img src="<?=$pic?>" border="0"></a><br />
Импресий: <?=$imp?>
</body>
</html>
<?php
}
?>Чрез този файл виждаме банер на произволен принцип.
CREATE TABLE `banner` (
`url` varchar(130) collate cp1251_bulgarian_ci NOT NULL,
`picurl` varchar(130) collate cp1251_bulgarian_ci NOT NULL,
`id` mediumint(8) unsigned NOT NULL auto_increment,
`impresii` varchar(30) collate cp1251_bulgarian_ci NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_bulgarian_ci AUTO_INCREMENT=1 ;SQL
Ако искате да видите даден банер колко импресий има,като напишете url-a,направете нов файл view.php и сложете това в него:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251" />
<title>Провери банер</title>
</head>
<body>
<form method="post" action="">URL:<input type="text" name="url" value=""><input type="submit" name="view" value="Виж импресийте"></form>
<?php
$view = $_POST['view'];
$baner = $_POST['url'];
$baner = htmlspecialchars($baner);
$baner = addslashes($baner);
include("conf.php");
mysql_connect($host,$user,$pass);
$chars="SET CHARACTER SET cp1251";
@mysql_select_db($db) or die( "Unable to select database");
mysql_query($chars);
if ($view)
{
$query = "SELECT * FROM $rw WHERE url='$baner'";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result);
$url = $row[url];
$pic = $row[picurl];
$imp = $row[impresii];
$broi = mysql_numrows($result);
if ($broi == 0) {
echo "Няма такъв банер.";
} elseif ($broi > 0) {
?>
<a href="<?=$url?>" target="_blank"><img src="<?=$pic?>" border="0"></a><br />
Импресий: <?=$imp?><br />
</body>
</html>
<?php
}
}
?>Ако имате въпроси на ЛС или във форума.
http://web-tourist.net/forum/viewtopic.php?p=110649


