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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите сформировать массив для JSON 
:(
    Опции темы
Evgen11
Дата 6.2.2014, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте. Вот всю голову сломал. Как можно сделать такой массив.
Допустим у меня есть выборка из БД. Например:
Код


$col ='id, title, price, sale';
$q = $this->db->query("SELECT ".$col." FROM table LIMIT 25");



И вот как можно сформировать такой массив в цикле.

Код

foreach($q->result() as $r)
{
$arj[] = array(
      'id' => $r->id,
      'title' => $r->id,
      'price' => $r->id,
      'sale' => $r->id,
);
}


Трудность в том что в переменной $col в разных местах могут быть разные столбцы.
Помогите пожалуйста.
PM MAIL   Вверх
baldina
Дата 7.2.2014, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

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



Код

$columns = array ('id', 'title', 'price', 'sale');
$q = $this->db->query("SELECT ".implode(',',$columns)." FROM table LIMIT 25");
...
foreach($q->result() as $r)
{
   foreach ($columns as $col)
      $res[$col] = $r->$col;
  $arj[] = $res;
}
// или проще
foreach($q->result() as $r)
  $arj[] = (array)$r;


а вообще что такое $this->db? наверняка есть способ сразу получить в виде массива
PM MAIL   Вверх
Evgen11
Дата 7.2.2014, 01:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



baldina, Понял, спасибо! 
Первый вариант конечно я сам делал - но, не красиво как то smile

А про второй пример.
Как я сам не догадался что $r это и есть уже массив с ключами в виде столбцов. 
Только не понял про (array) перед $r что это значит?

А $this->db - это класс абстракции БД в Codeigniter
PM MAIL   Вверх
baldina
Дата 7.2.2014, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

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



Цитата(Evgen11 @  7.2.2014,  01:59 Найти цитируемый пост)
про (array) перед $r

преобразование к типу array
если $r объект, в массиве будут ключи соответствующие именам членов класса
PM MAIL   Вверх
krypt3r
Дата 11.2.2014, 06:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата
foreach($q->result() as $r)

result_array(), не?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




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


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

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