Программирование > PHP
поворот таблицы на 90 градусов
Megalord:
есть MySQL БД нужно выбрать из таблицы данные и перед выводом на экран развернуть таблицу
должно быть примерно так:
id | title | param1 |param2 | param3
1 | a | a1 |a2 |a3
2 | b | b1 |b2 |b3
3 | c | c1 |c2 |c3
id | 1 | 2 | 3
title | a | b | c
param1 |a1|b1|c1
param2 |a2|b2|c2
param3 |a3|b3|c3
brainkiller:
Первое, что приходит в голову - значения записать в массив, а потом по нему еще раз циклом пройти.
Megalord:
--- Цитировать ---brainkiller:
Первое, что приходит в голову - значения записать в массив, а потом по нему еще раз циклом пройти.
--- Конец цитаты ---
про то что для начала нужно все запихнуть в массив понятно
но просто не хватает фантазии как этот массив потом развернуть
может есть какая функция для поворота массива или придется циклом каждое значение переставлять?
brainkiller:
[OFF]Ага, прикольная была бы функция: array_rotate($array, 90); :)[/OFF]
К сожалению, просто повернуть его вряд ли получится.
Можно пойти следующим путем. Вначале формируем двумерный массив со значениями примерно такого вида:
$a[0][0]=\'id\'; $a[0][1]=\'title\', ... , $a[0][n]=\'paramN\'
$a[1][0]=\'1\'; $a[1][1]=\'a\', $a[1][2]=\'a1\', ... , $a[1][n]=\'aN\'
$a[2][0]=\'2\'; $a[2][1]=\'b\', $a[2][2]=\'b1\', ... , $a[2][n]=\'bN\'
...
$a[m][0]=\'m\'; $a[m][1]=\'x\', $a[m][2]=\'x1\', ... , $a[m][n]=\'xN\'
Естественно, делаем это не вручную, а вложенным циклом, меняя во внешнем цикле значение m, а во внутреннем - n.
А потом выводим содержимое массива, меняя во внешнем цикле значение n, а во внутреннем - m:
for($i=0; $i
new_coder:
просто формируешь вывод по другому
ихмо нет лишнит затрат времени
$sql_res = mysql_query("SELECT * FROM program");
$max = mysql_num_rows($sql_res);
for($i = 0; $i < $max; $i++)
{
$res[] = mysql_fetch_assoc($sql_res);
}
$HTML_TABLE .= "<table border=\'1\'>";
foreach($res[0] as $key => $value)
{
$HTML_TABLE.="<tr>
<td>".
$key
."</td>";
for($i = 0; $i < $max; $i++)
{
$HTML_TABLE.="<td>".
$res[$i][$key]
."</td>";
}
$HTML_TABLE.="</tr>";
}
$HTML_TABLE .= "</table>";
Навигация
Перейти к полной версии