[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Собрать массив с ключами из одинаковых полей
SoMeOnE
Есть запрос вида
SELECT * FROM cs_questions WHERE test_id = 3

Одно из полей level. В базе 4 уровня по 14 вопросов в каждом.
Как можно получить массив из 4 по ключу level
Надеюсь смог объяснить. Типа такого

array (
1 => array (
1 => ...
...

14 => ...
)
...

4 => array (
1 => ...
...

14 => ...
)
)
waldicom
Каждый вопрос относится к одному уровню и вся инфа в одной таблице?
Тогда просто foreach по результатам и что-то типа такого:

while($row = fetch...){
...
$allQuestions[$row['level']][] = $row;
....

}


_____________
Свои мозги еще никто не отменял.
Телепатов нету.
SoMeOnE
Цитата
Каждый вопрос относится к одному уровню и вся инфа в одной таблице?

Да каждый вопрос к одному уровню и все в одной таблице. В базе 56 вопросов по 14 для каждого уровня.


Я имено имел ввиду можно ли такую операцию переложить на плечи базы?)
Я так понял нереально? Понимаю что размеры базы смехотворны, но хотелось бы как правильно.



sergeiss
Цитата (SoMeOnE @ 3.02.2014 - 02:52)
Я имено имел ввиду можно ли такую операцию переложить на плечи базы?)

В каком виде ты хочешь это получить? Если использовать GROUP_CONCAT, то вполне можно получить 4 строки и в каждой есть поле со списком из 14 значений. Если это то, что тебе нужно, то флаг в руки smile.gif

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
SoMeOnE
Что-то не то. При таком запросе
SELECT id, question_ru, GROUP_CONCAT(`level`) AS level FROM cs_questions WHERE test_id = 3

выводится только один вопрос и все 56 значений level попадают в значение поля level первого вопроса, который выводится.


p.s прочитал о ф-ии. вроде работает так как должна работать. Но мне не это нужно. Мне нужно получиься массив, который получает waldicom путем перебора.
T1grOK
Цитата (SoMeOnE @ 2.02.2014 - 22:52)
Я имено имел ввиду можно ли такую операцию переложить на плечи базы?)
Я так понял нереально? Понимаю что размеры базы смехотворны, но хотелось бы как правильно.

СУБД работает с таблицами - столбцы и строки. Не занимайся ерундой, waldicom дал правильный ответ.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
SoMeOnE
T1grOK ну ерундой как бы не занимаюсь. Интересуюсь возможно ли на строне бд такое сделать. вот и все
T1grOK
Можно. Хранимые функции. В Mysql нет типа данных массив, поэтому это еще одна отдельная тема, результат придется отдавать, например в JSON. В Postgresql все проще, там полный арсенал.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
Valick
Цитата
Я имено имел ввиду можно ли такую операцию переложить на плечи базы?

неправильный вопрос, правильный вопрос звучит так:
Цитата
нужно ли такую операцию переложить на плечи базы?

Ответ:
Цитата
нет не нужно
SoMeOnE
T1grOK, Valick
спасибо
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.