Hi Leute ich habe hier mal angefangen ein Script für die Bannerrotation zu erstellen.
Es soll wie folgt funktionieren:
In der Datenbank werden verschiedene Banner gespeichert. Zu jedem Banner wird in ein Feld geschrieben, wie oft er maximal angezeigt werden soll und wie oft er schon angezeigt wurde.
Hier kurz der MySQL-Code.
Bisher habe ich folgenden Teil meines Banner-Scripts.
Ich trage für einen Banner eine maximale Anzahl von 100 Hits ein. Wenn ich die Seite zum erstenmal aufrufe, dann ist der Wert in `banner_count` 1, da der Banner einmal aufgerufen wurde. Sobald der Wert aber 2 ist, wird kein Banner mehr gefunden! Es muss an der WHERE-Abfrage liegen, weil wenn ich diese entferne, dann geht's. Aber ohne die kann ich ja nicht prüfen, ob der jeweilige Banner noch angezeigt werden soll.
Mfg, berti
Es soll wie folgt funktionieren:
In der Datenbank werden verschiedene Banner gespeichert. Zu jedem Banner wird in ein Feld geschrieben, wie oft er maximal angezeigt werden soll und wie oft er schon angezeigt wurde.
Hier kurz der MySQL-Code.
Code:
CREATE TABLE `bero_banner` ( `id` int(11) unsigned NOT NULL auto_increment, `cid` int(11) NOT NULL default '0', `type` varchar(100) collate latin1_general_ci NOT NULL default '', `name` varchar(100) collate latin1_general_ci NOT NULL default '', `imageurl` varchar(100) collate latin1_general_ci NOT NULL default '', `clickurl` varchar(100) collate latin1_general_ci NOT NULL default '', `banner_count` varchar(100) collate latin1_general_ci NOT NULL default '', `banner_max` varchar(100) collate latin1_general_ci NOT NULL default '', `date` timestamp NOT NULL default CURRENT_TIMESTAMP, `position` int(11) NOT NULL default '0', `check` int(11) NOT NULL default '1', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1;
PHP-Code:
<?php
error_reporting(E_ALL ^ ~E_NOTICE);
function banner($position)
{
$mysql_host = "localhost";
$mysql_user = "root";
$mysql_pass = "";
$mysql_data = "schulbuc_bero";
// Verbindung zur Datenbank herstellen
$link = mysql_connect($mysql_host, $mysql_user, $mysql_pass)
or die("Error: ". mysql_error());
mysql_select_db($mysql_data, $link)
or die("Error: ". mysql_error());
// Datensatz-Ausgabe festlegen
$sql = "SELECT
`id`,
`name`,
`clickurl`,
`imageurl`
FROM
`bero_banner`
WHERE
`position` = '". $position ."'
AND
banner_count < banner_max";
$result = mysql_query($sql)
or die("Error: ". mysql_error());
print mysql_num_rows($result);
// Alle Banner in ein Array schreiben
$banner = array();
while($row = mysql_fetch_assoc($result))
$banner[] = $row;
// Zufallsbanner auswählen
$rand = rand(0, mysql_num_rows($result)-1);
// Banner ausgeben
print "<a href=\"". $banner[$rand]['clickurl'] ."\" target=\"_blank\">\n";
print "<div id=\"promotion-field-right\">\n";
print "<img alt=\"". $banner[$rand]['name'] ."\" height=\"600\" border=\"0\" src=\"". $banner[$rand]['imageurl'] ."\" width=\"160\">\n";
print "</div>\n";
print "</a>\n";
}
?>
Mfg, berti
Kommentar