Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помощь с массивами 
V
    Опции темы
unicross
Дата 16.10.2008, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 21
Всего: 53



sayber, мой вариант с массивом и единственным запросом к базе данных не работает?


Цитата(MoLeX @  16.10.2008,  05:47 Найти цитируемый пост)
ИМХО очень плохой вариант   


Согласен. Это просто как второй вариант. Основной был первым...
PM MAIL WWW   Вверх
sayber
Дата 16.10.2008, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 30.7.2006
Где: Moscow - qwerty

Репутация: нет
Всего: нет



unicross, нет, не работает.


Вот мой код, но где то накосячил.


Код


$cnt_random=23;
$arr_result=array();
$arr_result_keys=array();
$prev_scat=-1;      

$Select = $this->query("SELECT sid, scat, surl, spic, stitle, stext FROM zdr_startpage ORDER BY scat");
foreach ($this->get_array($Select) as $RowArr) {

        if ($RowArr['scat']!= $prev_scat) {
            $i=0;
            $arr_result[$RowArr['scat']]=array();        
        }
        $prev_scat = $RowArr['scat'];
        
        $arr_result[$prev_scat][$i++]=$RowArr;
}

while (list($key, $val) = each($arr_result))
{    
    $num=($cnt_random < sizeof($val))? $cnt_random : sizeof($val);
    $arr_result_keys[$key] = (array) array_rand($arr_result[$key], $num);
}

while (list($key, $val)=each($arr_result_keys))
{
        
    for ($i=0; $i < sizeof($val); $i++)
    {
     
          $karkas .= '<br />'. $arr_result_keys[$key][$val].'=> '.$arr_result[$key][$val[$i]]['stitle'];
     
         
    }
}


Добавлено через 1 минуту и 16 секунд
Я могу такое сделать за 1 минуту на .NET а вот на пхп не получается.  

Вложенные селекты не пашут в mysql
--------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~WoW CafeSayber ©  Портфолио ~~~~~~~~~~~~~~~~~~~~~~~~~~~
PM MAIL WWW ICQ   Вверх
unicross
Дата 16.10.2008, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 21
Всего: 53



Цитата(sayber @  16.10.2008,  19:20 Найти цитируемый пост)
unicross, нет, не работает.


Конкретнее, пожалуйста. Не работает это:
1. Выдает глобальную ошибку.
2. Выдает не случайным образом.

У меня на компе все работает. Каждый раз разный вариант.

Цитата(sayber @  16.10.2008,  19:20 Найти цитируемый пост)
Вложенные селекты не пашут в mysql


Это не так. Вложенные запросы работают! Приведите пример вашего вложенного запроса для такой выборки.
PM MAIL WWW   Вверх
sayber
Дата 17.10.2008, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 30.7.2006
Где: Moscow - qwerty

Репутация: нет
Всего: нет



unicross, 

Спасибо, помогло.
Вначале просто тупанул, не спал больше суток )

Рабочий код

Код

$Select = $this->query("
    SELECT zdr_category.id, zdr_category.name, zdr_category.alt_name, zdr_startpage.* 
    FROM zdr_category 
    JOIN zdr_startpage 
    WHERE zdr_startpage.scat =  zdr_category.id ORDER BY zdr_startpage.scat
    ");
    
    while ($pole = $this->get_array($Select)) 
    {
        $arr[$pole[4]][] = $pole;
    }
    
    
    foreach($arr as $key) 
    {
      if (isset($key)) 
       {
             $a = count($key);
             $a--;
             $index = mt_rand(0, $a);
             
             
     if($key[$index][3] % 2) { $karkas .= "</tr><tr>"; }


    $karkas .= "тут вывод";
         
         
         
      }
   }

--------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~WoW CafeSayber ©  Портфолио ~~~~~~~~~~~~~~~~~~~~~~~~~~~
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0426 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.