Форум русской поддержки Joomla!® CMS
17.08.2017, 23:17:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Основной курс по Joomla
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Вывод из базы в указанном порядке

 (Прочитано 250 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Mick_20
Завсегдатай
*****

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 686


Кручу мучу... заработать хочу.


« : 03.12.2016, 09:38:02 »

Здравствуйте,

Получаю из базы массив данных:

Код
запрос
...
$data = $db->loadObjectList();

Вывожу обычно так:
Код
foreach ($data as $q) 
{
     echo $q->name;
}

А как можно вывести данные в заданном порядке?
У меня есть второй массив $data_order в котором лежат цифры - 2,3,1,5,4...
Надо с ним как-то связать вывод.
Записан
NewUsers
Завсегдатай
*****

Репутация: +45/-0
Offline Offline

Пол: Мужской
Сообщений: 593


« Ответ #1 : 03.12.2016, 09:39:29 »

сортируй с помощью ORDER BY
Записан
Mick_20
Завсегдатай
*****

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 686


Кручу мучу... заработать хочу.


« Ответ #2 : 04.12.2016, 20:11:12 »

сортируй с помощью ORDER BY
мне надо сортировать не по какому-то полю таблицы а по очередности записанной в массив.
Записан
fsv
Практически профи
*******

Репутация: +368/-2
Offline Offline

Пол: Мужской
Сообщений: 2553


« Ответ #3 : 04.12.2016, 22:02:09 »

array_combine, затем упорядочить по возрастанию
Записан
Mick_20
Завсегдатай
*****

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 686


Кручу мучу... заработать хочу.


« Ответ #4 : 05.12.2016, 08:27:26 »

Код
$combine_arr = array_combine($q_count, $data);
var_dump($combine_arr);

Белый экран получил.

В итоге сделал так:

Код
$t_rand = 2,5,3,1,4;
$query->order("FIELD(question_id,{$t_rand})");


Спасибо за помощь.
« Последнее редактирование: 05.12.2016, 08:52:43 от Mick_20 » Записан
fsv
Практически профи
*******

Репутация: +368/-2
Offline Offline

Пол: Мужской
Сообщений: 2553


« Ответ #5 : 05.12.2016, 15:45:05 »

Белый экран получил.
Потому что $data надо было предварительно подготовить. Ну не жевать же, если вы сами код пишите. Справку по функции почитали бы сначала.
Записан
Septdir
Практически профи
*******

Репутация: +106/-0
Offline Offline

Пол: Мужской
Сообщений: 2123



« Ответ #6 : 05.12.2016, 15:49:41 »

тут есть почти вся нужная инфа https://docs.joomla.org/Selecting_data_using_JDatabase
Записан
b2z
Support Team
*****

Репутация: +739/-0
Offline Offline

Пол: Мужской
Сообщений: 7740


Разраблю понемногу


« Ответ #7 : 05.12.2016, 15:52:20 »

https://cmscafe.ru/docs/joomla/developer/db
Записан
Mick_20
Завсегдатай
*****

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 686


Кручу мучу... заработать хочу.


« Ответ #8 : 05.12.2016, 16:19:42 »

спасибо всем.
посмотрю.

как готовить $data не понял. ObjectList это же массим объектов?? а что еще тогда надо?
Записан
SmokerMan
Профи
********

Репутация: +715/-26
Offline Offline

Пол: Мужской
Сообщений: 5379



« Ответ #9 : 05.12.2016, 16:28:22 »

А как можно вывести данные в заданном порядке?
У меня есть второй массив $data_order в котором лежат цифры - 2,3,1,5,4...
Надо с ним как-то связать вывод.
ну видимо как-то так
http://joomlaforum.ru/index.php/topic,98970.0.html
Записан
Mick_20
Завсегдатай
*****

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 686


Кручу мучу... заработать хочу.


« Ответ #10 : 05.12.2016, 16:48:20 »

ну видимо как-то так
http://joomlaforum.ru/index.php/topic,98970.0.html

ну так я и сделал так )))

В итоге сделал так:
Код
$t_rand = 2,5,3,1,4;
$query->order("FIELD(question_id,{$t_rand})");
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet