Ik ben bezig met mijn studie PHP. Hiermee ben ik eens een banner_rotatie systeem aan het maken die object georienteerd is. Dit slechts om het wat meer onder de knie te krijgen.
Ik krijg netjes uit 1 functie een waarde wat gelijk staat aan een banner ID, die weer gekozen wordt uit een query van de aanwezige, actieve banners. Alleen af en toe krijg ik dus geen waarde terug waardoor de pagina in zijn geheel niet laad.
Weet iemand hier een oplossing voor?
Ik zal hieronder even de stukken code plaatsen:
De classes.
<?php
class banner_rotatie {
public function banner_id() {
$get_banners=mysql_query("SELECT banner_id FROM banner_rotatie WHERE banner_active=1")or die(mysql_error());
/* -------------
Bevat alleen maar banner_id's die actief zijn.
Eerst even kijken hoeveel waarden we in de array hebben staan.
-------------- */
$max_waarde=mysql_num_rows($get_banners)+2;
for ($i=1; $i!=$max_waarde; $i++){
$banner_array[$i]=mysql_fetch_row($get_banners);
}
/* -------------
We tellen het aantal ID's zodat we random kunnen maken tussen 0 en het aantal banner_id's
------------ */
$banner_nr=mt_rand(1, $max_waarde);
/* ---------
De banner overzetten naar $banner_id[0].
deze krijgt een array waarde dus de [0] is nodig.
------------ */
$banner_id=$banner_array[$banner_nr];
if (empty($get_banners)) {
$banner_id=1;
return $banner_id[0];
} else {
return $banner_id[0];
}
}
public function banner_details($banner_id) {
$get_banner=mysql_query("SELECT banner_clickcount, banner_file, banner_url FROM banner_rotatie WHERE banner_id='".$banner_id."'")or die(mysql_error());
$banner_details=mysql_fetch_array($get_banner, MYSQL_BOTH)or die(mysql_error());
return $banner_details;
}
}?>
En hieronder het aanroepen en het verwerken van de data. En het plaatsen van de banner.
<?php
include ('config.php');
include ('function.php');
/* ----------------- functie aanroepen voor een nieuwe banner: */
$banner = new banner_rotatie();
/* ----------------- We halen maar eens een banner_detail op: */
$banner_id[0] = $banner->banner_id();
/* ----------------- We hebben een detail die geven we mee aan de query: */
$banner_details = $banner->banner_details($banner_id[0]);
/* -----------------
$banner_details is een array
[0]=clickcount
[1]=banner bestand
[2]=url waar de banner naar toe moet linken
print ''.$banner_details[0].'<br>';
print ''.$banner_details[1].'<br>';
print ''.$banner_details[2].'<br>';
----------------- */
print ''.$banner_id[0].'<br>';
if (empty($banner_details[1])) {
$banner_details[1]='banner\energy_lan_banner.gif';
}
if (!file_exists($banner_details[1])) {
$banner_details[1]='banner\energy_lan_banner.gif';
}
$_SESSION['url']=$banner_details[2];
?>
<table width="100%" border="1" style="border-collapse:collapse;">
<tr>
<td colspan="2" align="center"><a href="click_out.php?id=<?php print $banner_id[0]; ?>"><img src=<?php print "".$banner_details[1].""; ?> /></a></td>
</tr>
?>