SoMeOnE
3.02.2014 - 02:32
Есть запрос вида
SELECT * FROM cs_questions WHERE test_id = 3
Одно из полей level. В базе 4 уровня по 14 вопросов в каждом.
Как можно получить массив из 4 по ключу level
Надеюсь смог объяснить. Типа такого
array (
1 => array (
1 => ...
...
14 => ...
)
...
4 => array (
1 => ...
...
14 => ...
)
)
waldicom
3.02.2014 - 02:38
Каждый вопрос относится к одному уровню и вся инфа в одной таблице?
Тогда просто foreach по результатам и что-то типа такого:
while($row = fetch...){
...
$allQuestions[$row['level']][] = $row;
....
}
_____________
Свои мозги еще никто не отменял.
Телепатов нету.
SoMeOnE
3.02.2014 - 02:52
Цитата |
Каждый вопрос относится к одному уровню и вся инфа в одной таблице? |
Да каждый вопрос к одному уровню и все в одной таблице. В базе 56 вопросов по 14 для каждого уровня.
Я имено имел ввиду можно ли такую операцию переложить на плечи базы?)
Я так понял нереально? Понимаю что размеры базы смехотворны, но хотелось бы как правильно.
sergeiss
3.02.2014 - 03:14
Цитата (SoMeOnE @ 3.02.2014 - 02:52) |
Я имено имел ввиду можно ли такую операцию переложить на плечи базы?) |
В каком виде ты хочешь это получить? Если использовать GROUP_CONCAT, то вполне можно получить 4 строки и в каждой есть поле со списком из 14 значений. Если это то, что тебе нужно, то флаг в руки
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
SoMeOnE
3.02.2014 - 10:52
Что-то не то. При таком запросе
SELECT id, question_ru, GROUP_CONCAT(`level`) AS level FROM cs_questions WHERE test_id = 3
выводится только один вопрос и все 56 значений level попадают в значение поля level первого вопроса, который выводится.
p.s прочитал о ф-ии. вроде работает так как должна работать. Но мне не это нужно. Мне нужно получиься массив, который получает
waldicom путем перебора.
Цитата (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
3.02.2014 - 11:06
T1grOK ну ерундой как бы не занимаюсь. Интересуюсь возможно ли на строне бд такое сделать. вот и все
Можно. Хранимые функции. В Mysql нет типа данных массив, поэтому это еще одна отдельная тема, результат придется отдавать, например в JSON. В Postgresql все проще, там полный арсенал.
_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
Цитата |
Я имено имел ввиду можно ли такую операцию переложить на плечи базы? |
неправильный вопрос, правильный вопрос звучит так:
Цитата |
нужно ли такую операцию переложить на плечи базы? |
Ответ:
SoMeOnE
3.02.2014 - 12:21
T1grOK, Valick
спасибо
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.