Dimok
Новичок
Система ротации банеров
Хочу написать клас, который получал масив из базы данных и обрабатывал его надлежащим образом, выдавал масив, который уже можно было обрабатывать и переводить в графическую форму.
Я выкладу пример класа. Я не крутой програмер, я учусь ... прошу не пинать, и дать как можно больше советов. Также хотел бы услышать советы професионалов, которые скажут, насколько безграмотно написан клас.
Вопросы : 1. Ошибка при формировании запроса к БД, нехочет воспринимать переменную $this->table_banner, как исправить ?
2. Нехочет воспринимать переменную $this->max_position в конце файла. Как исправить ?
А ето код запуска класа. При изменении етих двух переменных на статистическии даные, все работает как надо.
Хочу написать клас, который получал масив из базы данных и обрабатывал его надлежащим образом, выдавал масив, который уже можно было обрабатывать и переводить в графическую форму.
Я выкладу пример класа. Я не крутой програмер, я учусь ... прошу не пинать, и дать как можно больше советов. Также хотел бы услышать советы професионалов, которые скажут, насколько безграмотно написан клас.
PHP:
<?php
class banner
{
protected $table_banner;
protected $random;
protected $max_position;
function __constuct($table_banner,
$random = true,
$max_position = 8)
{
// Назва БД
$this->table_banner = $table_banner;
// Максимальна кількість даних в одному масиві
$this->max_position = $max_position;
// Включення і вимкнення функції випадкового розкидування банерів
if ($random == "on")
{
$this->random = true;
}
else
{
if ($random === true)
{
$this->random = true;
}
else
{
$this->random = false;
}
}
}
function get_html ()
{
$query = "SELECT * FROM $this->table_banner WHERE hide='show'";
$row_banners = mysql_query($query);
if(!$row_banners)
{
echo "Возникла ошибка - ".mysql_error()."<br>";
echo $row_banners;
exit();
}
if (mysql_num_rows($row_banners)>0)
{
while ($array_banners = mysql_fetch_array($row_banners))
{
// Якщо є код, то використати його і закінчити
if (!empty($array_banners['code']))
{
$banners[] = $array_banners['code'];
}
// Якщо коду немає, передивитись інші дані
else
{
// Передивитись наявність картинка
if (!empty($array_banners['image']))
{
$image = $array_banners['image'];
// Якщо є ссилка
if (!empty($array_banners['url']))
{
$url = $array_banners['url'];
}
else
{
$url = "";
}
// Якщо є альт-тег, використати його
if (!empty($array_banners['alt']))
{
$alt_teg = $array_banners['alt'];
}
else
// Якщо немає
{
// Передивитись, чи є назва компанії
if (!empty($array_banners['company']))
{
$alt_teg = $array_banners['company'];
}
else
{
$alt_teg = "";
}
}
$banners[] = "<a href='$url'><img src='$image' alt='$alt_teg'></a>";
}
}
}
}
// Включення функції випадкової вибірки даних
if ($this->random = true)
{
shuffle ($banners);
}
// Повернення готового масиву
$banners = array_chunk($banners, $this->max_position);
return $banners;
}
}
?>
2. Нехочет воспринимать переменную $this->max_position в конце файла. Как исправить ?
А ето код запуска класа. При изменении етих двух переменных на статистическии даные, все работает как надо.
PHP:
<?php
include_once ("config.php");
include_once ("banner.php");
$table = "table_banners";
$date = new banner ($table, true, 4);
var_dump ($date->get_html());
?>