Случайный вывод одной ИС из множества

#
Случайный вывод одной ИС из множества
Делаю например вывод трех инфосистем


<?php
  $InformationSystem = & singleton
  ...
?>

<?php
  $InformationSystem = & singleton
  ...
?>

<?php
  $InformationSystem = & singleton
  ...
?>


Нужно отображать случайно только одну систему из трех, подскажите чего в php добавить чтобы организовать это условие...

Cпасибо
ку
Модератор
#
Re: Случайный вывод одной ИС из множества
// Массив идентификаторов ИС
$aIsId = array(1,2,3);
$iRandIsId = array_rand($aIsId);

// Дальше выводите ИС с ID $iRandIsId
#
Re: Случайный вывод одной ИС из множества
Если я правильно понял

   <?php
   
   
   $aIsId = array(16,26,27);
   $iRandIsId = array_rand($aIsId);
  

    // Афиша
    $InformationSystem = & singleton('InformationSystem');
    $external_propertys = array();
    $external_propertys['ОтображатьСсылкуНаАрхив']=1;
    $external_propertys['ПоказыватьСсылкиНаДругиеСтраницы'] = 0;
    $property=array();
    $property['OrderField'] = 'CONVERT(CONCAT(SUBSTR(information_propertys_items_value, 7, 4), CHAR(45), SUBSTR(information_propertys_items_value, 4, 2), CHAR(45), SUBSTR(information_propertys_items_value, 1, 2)),  DATE)';

$property['Order'] = 'ASC';
    $property_id = 30; // Идентификатор доп. свойства типа "Дата"
    // Заполняем первое условие
    $element['type'] = 1;
    $element['property_id'] = $property_id;
    $element['prefix'] = ' AND ';
    $element['if'] = '!=';
    $element['value'] = '';
    $element['sufix']=" AND CONVERT(CONCAT(SUBSTR(information_propertys_items_value, 7, 4), CHAR(45), SUBSTR(information_propertys_items_value, 4, 2), CHAR(45), SUBSTR(information_propertys_items_value, 1, 2)),  DATE) > CURDATE()";
    $property['select'][] = $element;
    
    // Выводим элементы
    $InformationSystem->ShowInformationSystem($iRandIsId, false, 'СписокЭлементовАфишаПраваяКолонка', 3, 0, $external_propertys, $property);



// Новости
    $InformationSystem = new InformationSystem();
    
    

    $InformationSystem->ShowInformationSystem($iRandIsId,false,'СписокЭлементовНовостиПраваяКолонка',3,
0,false);

  
  // Открыти записи в секции
  $InformationSystem = & singleton('InformationSystem');
  $property=array();
  $element['type'] = 1;
  $element['prefix'] = ' and (';
  $element['property_id'] = 27;
  $element['if'] = '!=';
  $element['value'] = '0';
  $element['sufix']=')';
  $property['select'][] = $element;
  $InformationSystem->ShowInformationSystem($iRandIsId,false,'СписокЭлементовКружкиПраваяКолонка',3,
0,array(),$property);
                  ?>


Пустые блоки в итоге..
причем вот так:

<div class="block"><h2><a href=""></a></h2></div>


то есть html вышел а информация нет...


что неправильно?
ку
#
Re: Случайный вывод одной ИС из множества
Задача повернулась следующим образом - нужное вывести две ИС случайно из трех...
Ну хоть что-нибудь.
ку
#
Re: Случайный вывод одной ИС из множества
Так и не получилось.. осталась проблема выше и нужно вывести 2 случайных ИС из трех. Из трех которые вызываются а не которые вообще есть в системе принадлежащие сайту.
ку
Модератор
#
Re: Случайный вывод одной ИС из множества
compaq,
создаете массив ИС, потом берете из него два случайных элемента:
$aIsId = array(16,26,27);
// Получаем ключи двух случайных элементов
$rand_keys = array_rand($aIsId, 2);

// Строим новый массив по полученным ключам
// (если нужно будет выбирать N из списка ИС, то корректнее будет сделать через foreach())
$aNewIsId = array($aIsId[$rand_keys[0]], $aIsId[$rand_keys[1]]);
Авторизация