1. Сказочник - 06 Ноября, 2016 - 10:23:39 - перейти к сообщению
Друзья, есть таблица в БД MySql в которой есть width, height и price. Нужно вывести её в виде html таблицы по типу шахматной доски. Т.е. первая строка все значения width, первый столбец все значения height, и внутри таблицы цены, по горизонтали высота, по вертикали ширина, для каждой цены. Нужно именно оформить в виде шахматной доски. Возможно попробовать записать в двумерный массив из БД а потом вывести его в html таблицу?
2. Сказочник - 06 Ноября, 2016 - 10:25:44 - перейти к сообщению
Сказочник пишет:
Друзья, есть таблица в БД MySql в которой есть width, height и price. Нужно вывести её в виде html таблицы по типу шахматной доски. Т.е. первая строка все значения width, первый столбец все значения height, и внутри таблицы цены, по горизонтали высота, по вертикали ширина, для каждой цены. Нужно именно оформить в виде шахматной доски. Возможно попробовать записать в двумерный массив из БД а потом вывести его в html таблицу?
вот как таблица в БД выглядит
3. 3d_killer - 06 Ноября, 2016 - 10:37:54 - перейти к сообщению
Делай 3 запроса, уникальные значения высоты, уникальные ширины, потом все цены, цены перебери и сложи массив $price[$R[width]][$R['height']]=$R['price']
а потов выводи таблицу
а потов выводи таблицу
4. Мелкий - 06 Ноября, 2016 - 11:32:40 - перейти к сообщению
А высоты зачем? Отсортировать выборку по высоте и ширине и выводить сколько есть.
А если формировать матрицу ширина х высота = цена, то и одного запроса достаточно, в ходе формирования матрицы все возможные колонки будут известны.
А если формировать матрицу ширина х высота = цена, то и одного запроса достаточно, в ходе формирования матрицы все возможные колонки будут известны.
5. 3d_killer - 06 Ноября, 2016 - 11:48:31 - перейти к сообщению
а вобще да, один запрос и формировать матрицу
6. rsersh - 07 Ноября, 2016 - 13:16:16 - перейти к сообщению
Сказочник пишет:
так цена понятно, а нафига в одной таблице то что должно парсится из css?Друзья, есть таблица в БД MySql в которой есть width, height и price
короче, нужно отдельно дерать бд, эктемель и таблицу стилей, в таблице стилей уже и нужно прописывать размеры и цвета ячеекс прочими свойствами, но никак не держать их в одной куче.
7. 3d_killer - 07 Ноября, 2016 - 13:46:20 - перейти к сообщению
что там еще должно парситься из CSS
Оо
Циклы посмотри что такое, может придет что на ум, как в цикле выводить таблицу с заголовками из массива, а потом что-то утверждай
парситься из css ппц
Оо
Циклы посмотри что такое, может придет что на ум, как в цикле выводить таблицу с заголовками из массива, а потом что-то утверждай
парситься из css ппц
8. rsersh - 07 Ноября, 2016 - 18:07:02 - перейти к сообщению
3d_killer пишет:
парситься из css ппц
парситься из css ппц
Допустим, есть файл в котором содержаться стили, таблицы стилей, десятка два таблиц стилей. На загрузку энной страницы нужно только две таблицы. Если это не парсинг то, что это?
3d_killer пишет:
Циклы посмотри что такое, может придет, что на ум, как в цикле выводить таблицу с заголовками из массива, а потом что-то утверждай
я представляю как это делается, но в чём тут преимущество? по мне это лишная писанина и так проще запутаться(по крайней мере мне). может я в предыдущий раз не совсем корректно выразился но сейчас смысл должен быть понятен.
9. 3d_killer - 07 Ноября, 2016 - 18:45:38 - перейти к сообщению
это никак не относится к сути поставленного вопроса в начале темы, либо вопрос был поставлен не верно
10. Prizma - 07 Ноября, 2016 - 21:42:55 - перейти к сообщению
Перекрестные запросы, мб тебе это надо? это про обработку в один запрос...
А по факту данных на одну таблицу если они в разных тогда структуру в студию, запрос помочь составить не сложно, а если грамотно запрос сделан, то и вывод идёт в 2 строчки через цикл и вот вся html таблица из бд.
Какие у вас исходные данные в бд?
А по факту данных на одну таблицу если они в разных тогда структуру в студию, запрос помочь составить не сложно, а если грамотно запрос сделан, то и вывод идёт в 2 строчки через цикл и вот вся html таблица из бд.
Какие у вас исходные данные в бд?
11. 3d_killer - 07 Ноября, 2016 - 22:45:23 - перейти к сообщению
да обычный тут запрос с сортировкой потом составление матрицы и вывод, несколько строчек кода...
(Добавление)
Prizma вы вообще просто ляпнуть не подумав написали? вначале он приложил скрин таблицы
(Добавление)
Prizma вы вообще просто ляпнуть не подумав написали? вначале он приложил скрин таблицы
12. Prizma - 09 Ноября, 2016 - 00:35:22 - перейти к сообщению
3d_killer пишет:
вы вообще просто ляпнуть не подумав написали? вначале он приложил скрин таблицы
Сказочник пишет:
хмм, и вправду не внимательно прочитал вопросДрузья, есть таблица в БД MySql в которой есть width, height и price.
В принципе всё просто ... на 10 минут хлопот, не проверял, но должно работать Конечно с учетом, что данные как в таблице на скрине, иначе надо запланированные пропуски вставлять собрать перед выводом все значения width и если в данных какого то значения нет добавлять пустой <td></td> - реализовать проще всего будет третим циклом внутри 2-ого, который будет запускаться при проверке следующего значения width
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- $db = new PDO($db_driver . ':host=' . $db_host . ';dbname=' . $db_name, $db_user, $db_password, $db_setting);
- $sql = 'SELECT `width`, `height`, `price` FROM `table` ORDER BY `width` ASC';
- $q = $db->prepare($sql);
- $q->execute();
- $ar = [];
- while($r = $q->fetch(\PDO::FETCH_ASSOC)) {
- $h = $r['height'];
- $w = $r['width'];
- $p = $r['price'];
- $ar[$h] = [];
- $ar[$h][$w] = $p;
- }
- if($a == $b) return 0;
- return ($a < $b) ? -1 : 1;
- });
- $re = '';
- $head = '<th>ширина</th>';
- foreach ($ar as $width => $data) {
- $head = '<th>' . $width . '</th>';
- $write = false;
- $re .= '<tr>';
- foreach ($data as $height => $price) {
- if(!$write) {
- $re .= '<th>' . $height . '</th>';
- $write = true;
- }
- $re .= '<td>'.$price.'</td>';
- }
- $re .= '</tr>';
- }
- echo '<table rules="all" border="1"><tr>'.$head.'</tr><tr><th>высота</th></tr>' . $re . '</table>';