powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как записать в ассоциативный массив данные из результирующей таблицы?
8 сообщений из 8, страница 1 из 1
Как записать в ассоциативный массив данные из результирующей таблицы?
    #38122366
Dimazsever
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Имеется вот такая результирующая таблица.
test_id | questions | answers
1 | вопрос 1 | ответ 1
1 | вопрос 1 | ответ 2
1 | вопрос 1 | ответ 3
1 | вопрос 2 | ответ 1
1 | вопрос 2 | ответ 2
1 | вопрос 2 | ответ 3
Нужно записать все это в ассоциативный массив и преобразовать в формат JSON.
Код: php
1.
2.
3.
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
$arr[] = array('id' => $row['test_id'], 'questions' => $row['questions'], 'answers' => $row['answers']);
}


Если применить этот код для решения моей задачи, в ассоциативный массив будут записываться одинаковые вопросы по несколько раз. Как этого избежать? Мне нужен JSON-объект такого вида:
Код: javascript
1.
2.
{"question": "вопрос 1", "answers": [{"answer": "ответ 1"}, {"answer": "ответ 2"}, {"answer": "ответ 3"}]},
{"question": "вопрос 2", "answers": [{"answer": "ответ 1"}, {"answer": "ответ 2"}, {"answer": "ответ 3"}]}
...
Рейтинг: 0 / 0
Как записать в ассоциативный массив данные из результирующей таблицы?
    #38122827
massena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если сначала вытащить только уникальные вопросы с помощью DISTINCT, забросить их ассоциативный в массив? А потом просто создать в этом массиве еще вложенные массивы с ответами для каждого вопроса?
...
Рейтинг: 0 / 0
Как записать в ассоциативный массив данные из результирующей таблицы?
    #38122854
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
massenaА если сначала вытащить только уникальные вопросы с помощью DISTINCT, забросить их ассоциативный в массив? А потом просто создать в этом массиве еще вложенные массивы с ответами для каждого вопроса?
Зачем там нагружать базу?
Код: php
1.
2.
3.
4.
5.
6.
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
if (!isset($arr[$row['questions']])) {
$arr[$row['questions']] = array('id' => $row['test_id'], 'questions' => $row['questions'], 'answers' => array());
}
$arr[$row['questions']]['answers'][] = $row['answers'];
}


ps. топикстартре, структура таблиц неверная.
нужно делать 3 таблички:
tests:
id1

questions:
id test_id question good_answer1 вопрос 1 12 вопрос 2 5

answers:
id question_id answer1 1 ответ 12 1 ответ 23 1 ответ 34 2 ответ 15 2 ответ 26 2 ответ 3
иначе получаеться многодублирующий текст в базе, что очень сильно скажеться на размер занимаемых данных.
и принято все же связывать по id, а не по тексту таблички (а вы связываете саму на себя)
...
Рейтинг: 0 / 0
Как записать в ассоциативный массив данные из результирующей таблицы?
    #38122863
massena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну да, о нормальных формах не слышали. Букварь же.
...
Рейтинг: 0 / 0
Как записать в ассоциативный массив данные из результирующей таблицы?
    #38123309
Фотография SmeL_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
massena,
и к чему ваши нормальные формы видут? к логической не избыточности, а она совсем не преследует прирост в производительности или уменьшению объема данных.
...
Рейтинг: 0 / 0
Как записать в ассоциативный массив данные из результирующей таблицы?
    #38123536
massena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SmeL_md,
Да я не спорю, сам не великий проектировщик. Просто помню что когда брался изучать основы SQL про приведение к нормальным формам вроде как самое начало. Немного дико видеть такую таблицу.
...
Рейтинг: 0 / 0
Как записать в ассоциативный массив данные из результирующей таблицы?
    #38123734
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
massenaНу да, о нормальных формах не слышали. Букварь же.
Что то я вас вобще не понимаю.... о чем речь?
Формах - типа структура субд?
зы. ну все так начинают, со временем только начинаешь понимать почему так правильно. А если с начала обьяснять, от всеравно в начале мало кому удаеться понять почему же так нвеерно... Тут всего одна табличка, все сразу видно какой тест, какой вопрос, какой ответ. а в случае 3х таблиц ничего не ясно... но не тут то было
...
Рейтинг: 0 / 0
Как записать в ассоциативный массив данные из результирующей таблицы?
    #38123768
Фотография SmeL_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
РенатФормах - типа структура субд?это формы реляционных связей с заточкой на избыточность данных. Вроде пока их там 6 :) Еще там есть Бойсса-Кода перед 5 нормальной формой или это и есть 5 нормальная форма с какими-то то там особенностями
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как записать в ассоциативный массив данные из результирующей таблицы?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]