Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Настройка приоритета показа баннеров

Сообщения:  [1-6] 

 
 автор: antf   (10.11.2004 в 12:02)   письмо автору
 
   для: cheops   (07.11.2004 в 12:26)
 

Что касается баннеров:
Предложенный вами механизм, Cheops, был мною адаптирован, проверен, опробован. Результат - успешно работает. Большое спасибо.
Что касается проверки ввода:
Я все же решил выбрать вариант с использованием регулярных выражений, так как в данном случае я на 100% могу быть уверен, что PHP интерпретатор "поймет" меня правильно.

   
 
 автор: Artem S.   (07.11.2004 в 17:02)   письмо автору
 
   для: antf   (07.11.2004 в 13:56)
 

>> И еще один небольшой вопрос: как проверить, что данные, введенные пользователем в поле типа text являются целым числом? Оправдано ли здесь приведение типов?
Думаю да. Надо только не забыть сделать проверку на "0" (строка автоматически преобразуется в 0).
Что же качается рег. выражений, то они не всегда удобны. Так например 1234r будит после преобразования 1234 - что и нужно, а рег. выражение выдаст ошибку. Возможно же случайное добавление буквы. Хотя все зависит от задачи.

   
 
 автор: cheops   (07.11.2004 в 14:35)   письмо автору
 
   для: antf   (07.11.2004 в 13:56)
 

> И еще один небольшой вопрос: как проверить, что данные,
>введенные пользователем в поле типа text являются целым
>числом? Оправдано ли здесь приведение типов?
С типами всё очень плохо - так как PHP преобразует типы в зависимости от контекста, лучше сразу вопользоваться регулярными выражениями
<?php
  $number 
1234;
  
$notnumber "1234r";
  if (
preg_match("|^[\d]+$|i"$number))
  {
    echo 
$number." - число<br>";
  }
  else
  {
    echo 
$number." - не число<br>";
  }
  if (
preg_match("|^[\d]+$|i"$notnumber))
  {
    echo 
$notnumber." - число<br>";
  }
  else
  {
    echo 
$notnumber." - не число<br>";
  }
?>

   
 
 автор: antf   (07.11.2004 в 13:56)   письмо автору
 
   для: cheops   (07.11.2004 в 12:26)
 

То есть, как я понимаю, нужно создать в БД(таблица bannersystem) колонку priority - int(3), где будет настроен приоритет показа каждого баннера. Тогда массив $banners будет заполняться примерно следующим образом:

<?php
  $query
="SELECT id, priority FROM bannersystem";
  
$result=mysql_query($query);
  while(
$Column=mysql_fetch_array($result))
  {
    
$Priority=$Column['priority'];
    for(
$i=1$i<=$Priority$i++)
    {
      
$banners[]=$Column['id'];
    }
  }
 
$index rand(1count($banner));
?>

И еще один небольшой вопрос: как проверить, что данные, введенные пользователем в поле типа text являются целым числом? Оправдано ли здесь приведение типов?

   
 
 автор: cheops   (07.11.2004 в 12:26)   письмо автору
 
   для: antf   (07.11.2004 в 12:02)
 

Хм... банеры показываются по закону случайных чисел. Пусть имеется 10 банеров, которым соотвествует массив $banner
<?php
  $banner 
= array(1,2,3,4,5,6,7,8,9,10);
?>

В котором приведены первичные ключи 10 баннеров. Современные генераторы случайных чисел достаточно равномерны, т.е. каждый банер будет показываться примерно одинаковое число раз по сравнению с другими. Поэтому при отображении баннера индекс массива можно вычислять следующим образом
<?php
  
// $index - случайный индекс массива $banner
  
$index rand(1count($banner));
  
// $banner[$index]
?>

Теперь чтобы увеличить приоретет баннера 1 нужно добавить в массив ещё значений этого баннера:
<?php
  $banner 
= array(1,1,1,2,3,4,5,6,7,8,9,10);
?>

Теперь баннер 1 будет показываться в 3 раза чаще чем остальные баннеры.

   
 
 автор: antf   (07.11.2004 в 12:02)   письмо автору
 
 

Здравствуйте. Помогите, пожалуйста, разобраться в следующей ситуации: на странице имеется два места для баннеров. Самих же баннеров может быть сколько угодно (их параметры, такие как само изображение, url, спрятать/показать и др. настраиваются в CMS). Требуется написать такой код, чтобы администратор мог настраивать приоритет их показов. Какие параметры для этого можно использовать и каков механизм их функционирования?
Примечание: можно (и нужно) использовать БД.

   

Сообщения:  [1-6] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования