Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Объединение ячеек при построении таблицы по данным из БД
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Объединение ячеек при построении таблицы по данным из БД

Страниц (1): [1]
 

1. kotompazb - 08 Января, 2014 - 16:43:13 - перейти к сообщению
Здравствуйте. Во-первых, прошу прощения, если пишу не в том разделе, поправьте пожалуйста.

К сути.
Необходимо построить таблицу в следующем виде

Нажмите для увеличения

объединяя ячейки с одинаковыми категориями, а также цены, если они одинаковые и входят в одну категорию.
Данные для получаем из БД.

Идея пока в следующем:
итак мы имеем некоторое количество категории (4), в каждой из них несколько ценовых групп, в каждой из которых в свою очередь несколько строк. таким образом все решается 2-мя проходами по массиву. при первом проходе выясняется количество всего этого и заполняется специальный 3-мерный массив. а при втором проходе используя эти данные формируется таблица. то есть как-то так. трабла только в том, что реализация работы с массивами в пхп мне немного непонятна.

То есть хотелось бы получить какое-то изящное решение и не изобретать велосипед, так как думаю, что многие уже неоднократно сталкивались с подобной проблемой.

P.S. Принцип отсортировки таблицы: SELECT *
FROM `alldays`
ORDER BY `category` DESC , `price1` , `price2` , `price3` , `price4` , `price5` , `room`, `bednum`

Заранее, спасибо.
2. gefard - 08 Января, 2014 - 22:43:56 - перейти к сообщению
выводим шапку таблицы
$result = mysql_query(запрос1);
while ($row = mysql_fetch_assoc($result)) {
выводим ячейку с категорией
$result2 = mysql_query(запрос2);
while ($row2 = mysql_fetch_assoc($result2)) {
выводим ячейки цен
}
}
В первом запросе получаем только категории
Во втором запросе получаем цены для каждой категории
Так вам проще понять будет
3. kotompazb - 10 Января, 2014 - 05:56:34 - перейти к сообщению
Еще раз здравствуйте.

gefard, спасибо. Однако, проблему решил раньше.
Пусть не особо элегантно, однако, работает именно так, как мне требуется.

Теперь о самом решении.

Во-первых, немного изменились условия задачи (несущественно).
Теперь таблица должна выглядеть так:

Нажмите для увеличения


Ну а теперь собственно и само решение.
Внимание! Тут много кода (решение решил, извиняюсь, выложить целиком).
Спойлер (Отобразить)

Спойлер (Отобразить)

Спойлер (Отобразить)

Спойлер (Отобразить)
Ну вот, собственно и все. Спасибо за внимание.

 

Powered by ExBB FM 1.0 RC1