0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 40
|
||||||
1 | ||||||
MySQL Вывод из массива в таблицу и вложенную таблицу01.01.2015, 14:38. Показов 2736. Ответов 12
Метки нет (Все метки)
Добрый день, помогите разобраться с выводом из массива в несколько таблиц, php не знаю поэтому прошу помощи. Ситуация следующая:
1. Есть массив получаемый из базы (Например такой: Array ( [0] => 1 [chs_id] => 1 [1] => 2014-11-26 [data_signala] => 2014-11-26 [2] => 14:17:00 [vremy_signala] => 14:17:00 [3] => Минин Максим Михайлович [fio_zaiv] => Минин Максим Михайлович [4] => 89534765597 [tel_zaiv] => 89534765597 [5] => 2 [rang_pozara] => 2 [6] => 1 [prichina_id] => 1 [7] => 1 [tip_chs_id] => 1 [8] => 1 [vid_chs_id] => 1 [9] => 1 [rayon_id] => 1 [10] => 1 [np_id] => 1 [11] => 1 [tip_zdania_id] => 1 [12] => 150 [usherb] => 150 [13] => 0 [logniy] => 0 [14] => [adres] => [15] => 1 [rayin_id] => 1 [16] => г. Орёл [nazvanie] => г. Орёл [17] => 2014-11-26 [data] => 2014-11-26 [18] => 15:05:00 [vrem_lokaliz] => 15:05:00 [19] => 15:40:00 [vrem_likvid] => 15:40:00 [20] => 2 [kol_postr] => 2 [21] => 0 [kol_pogib] => 0 [22] => 2 ствола [prin_mer] => 2 ствола [23] => [dop_info] => [24] => 2 ГДЗС [privlech_sili] => 2 ГДЗС [25] => 12 [ploshad_vozgor] => 12 [26] => 0 [pogib_deti] => 0 [27] => 0 [postr_deti] => 0 [28] => 1 [l_id] => 1 [29] => 1 [30] => [mashtab_chs] => [31] => 1 [viezd_id] => 1 [32] => ПЧ-3 [Podrazdelenie] => ПЧ-3 [33] => 14:19 [time_viezda] => 14:19 [34] => 14:40 [time_pribitia] => 14:40 [35] => 1 [36] => 21 [rast] => 21 )) 2. Необходимо выбрать данные из массива в таблицу такого вида (см. вложение). Причем одному полю из первой таблицы может соответствовать несколько полей из вложенной таблицы. Пробовал делать через while() цикл зацикливается и полцчается ерунда, через foreach() тоже не получилось. Вот кусок скрипта PHP:
0
|
01.01.2015, 14:38 | |
Ответы с готовыми решениями:
12
Запрос - Сгруппировать строки как вложенную таблицу Вывод БД в таблицу. Как отсортировать по определенному столбцу таблицу Вывод массива в таблицу Вывод из массива в таблицу |
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 40
|
|
01.01.2015, 14:58 [ТС] | 2 |
Более опытные товарищи подскажите куда копать, может сделать этот массив многомерным?
0
|
217 / 157 / 30
Регистрация: 11.05.2010
Сообщений: 614
|
|||||||||||
01.01.2015, 15:43 | 3 | ||||||||||
1.
Напишите это нормально, а не в одно нескончаемую строку. Такое читать, да ещё и первого января, издевательство, не иначе.
2. ТАК ПИСАТЬ НЕЛЬЗЯ! Точнее, это всё работать будет, но всё равно нельзя. Не принято, плохо читаемо и дополнительная нагрузка на пхп(процессор).
1
|
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 40
|
|
01.01.2015, 15:56 [ТС] | 4 |
Вывел:
Array ( [0] => 1 [chs_id] => 1 [1] => 2014-11-26 [data_signala] => 2014-11-26 [2] => 14:17:00 [vremy_signala] => 14:17:00 [3] => Минин Максим Михайлович [fio_zaiv] => Минин Максим Михайлович [4] => 89534765597 [tel_zaiv] => 89534765597 [5] => 2 [rang_pozara] => 2 [6] => 1 [prichina_id] => 1 [7] => 1 [tip_chs_id] => 1 [8] => 1 [vid_chs_id] => 1 [9] => 1 [rayon_id] => 1 [10] => 1 [np_id] => 1 [11] => 1 [tip_zdania_id] => 1 [12] => 150 [usherb] => 150 [13] => 0 [logniy] => 0 [14] => [adres] => [15] => 1 [rayin_id] => 1 [16] => г. Орёл [nazvanie] => г. Орёл [17] => 2014-11-26 [data] => 2014-11-26 [18] => 15:05:00 [vrem_lokaliz] => 15:05:00 [19] => 15:40:00 [vrem_likvid] => 15:40:00 [20] => 2 [kol_postr] => 2 [21] => 0 [kol_pogib] => 0 [22] => 2 ствола [prin_mer] => 2 ствола [23] => [dop_info] => [24] => 2 ГДЗС [privlech_sili] => 2 ГДЗС [25] => 12 [ploshad_vozgor] => 12 [26] => 0 [pogib_deti] => 0 [27] => 0 [postr_deti] => 0 [28] => 1 [l_id] => 1 [29] => 1 [30] => [mashtab_chs] => [31] => 1 [viezd_id] => 1 [32] => ПЧ-3 [Podrazdelenie] => ПЧ-3 [33] => 14:19 [time_viezda] => 14:19 [34] => 14:40 [time_pribitia] => 14:40 [35] => 1 [36] => 21 [rast] => 21 ) Вижу дублированные записи, пока не совсем понял откуда они взялись.
0
|
217 / 157 / 30
Регистрация: 11.05.2010
Сообщений: 614
|
|
01.01.2015, 16:49 | 5 |
mysql_fetch_array замени на mysql_fetch_assoc, пропадут числовые индексы и массив уменьшиться вдвое.
ну и можете показать запрос? интересно, где же взялось 36 полей О_о
1
|
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 40
|
||||||
01.01.2015, 18:05 [ТС] | 6 | |||||
Запросов несколько срабатывают в зависимости по условию. Приведу один:
Заменил индексы исчезли, дублирующие записи пропали, спасибо. но всё же не понятно как все это вывести в таблицу =( Добавлено через 15 минут Еще заметил, что в массив сохраняется только одна запись из таблицы.
0
|
217 / 157 / 30
Регистрация: 11.05.2010
Сообщений: 614
|
||||||
01.01.2015, 20:36 | 7 | |||||
вы каждый раз в цикле
это так должно быть лишь в том случае, если этот запрос возвращает 1 строку.
насчёт таблицы, я так понял, что у вас она одна, а нужно две, где вторая была бы внутри последней ячейке(строке) первой таблицы, правильно? тогда это не сложно.
1
|
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 40
|
|
01.01.2015, 20:43 [ТС] | 8 |
Да я и хочу две отдельные таблицы сделать, просто в примере старый вариант, но одной записи в первой таблице должно соответствовать несколько записей во второй т.е. в рамках задачи " на одно происшествие могут выезжать несколько подразделений". Пока не знаю как цикл построить, видимо необходимо сделать в теле цикла вложенный цикл, но как сделать так чтобы он не прогонял все элементы в цикле, а выбирал и выводил только уникальные.. Пробовал foreach(), но он выводит какие то каракули. Плюс видимо SQL запрос не правильно построил, может лучше с помощью JOIN?
0
|
217 / 157 / 30
Регистрация: 11.05.2010
Сообщений: 614
|
|
03.01.2015, 00:16 | 9 |
делайте 2 запроса, две выборки, каждой из них по таблице. (если я правильно понял проблему)
запросы лучше делать через join: хоть и писать больше, но и лучше контролировать. ну и вместо "SELECT *" перечислить только нужные поля.
1
|
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 40
|
|||||||||||
05.01.2015, 19:03 [ТС] | 10 | ||||||||||
Переделал все запросы через JOIN, сделал цикл в цикле для вывода подтаблицы.
Добавлено через 25 минут Вот таким образом выводит нужный мне результат но только при первом прогоне цикла:
0
|
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 40
|
|
05.01.2015, 19:06 [ТС] | 11 |
Во вложении результат работы скрипта.
0
|
217 / 157 / 30
Регистрация: 11.05.2010
Сообщений: 614
|
||||||
05.01.2015, 21:59 | 12 | |||||
Сообщение было отмечено 467919556 как решение
Решение
ну пример. 2 таблицы.
groups(group_id, group_name, ...) items(item_id, item_name, group_id, ...) тогда как-то так я всё это вижу:
1
|
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 40
|
|
05.01.2015, 22:42 [ТС] | 13 |
Вроде бы так и делаю, только вот второй цикл выполняется только один раз.
Добавлено через 2 минуты Переместил второй запрос в тело первого цикла и всё заработало. Огромное спасибо!!!
0
|
05.01.2015, 22:42 | |
05.01.2015, 22:42 | |
Помогаю со студенческими работами здесь
13
Вывод массива в таблицу Вывод массива в таблицу Вывод массива в таблицу Вывод массива в таблицу Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |