Forum Webscript.Ru
Программирование => PHP => Тема начата: Megalord от 25 Марта 2007, 23:14:02
-
есть 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:
Первое, что приходит в голову - значения записать в массив, а потом по нему еще раз циклом пройти.
про то что для начала нужно все запихнуть в массив понятно
но просто не хватает фантазии как этот массив потом развернуть
может есть какая функция для поворота массива или придется циклом каждое значение переставлять?
-
[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 for($j=0; $j echo $a[$j][$i].\' | \';
}
echo \'
\';
}
Код не проверял, но алгоритм примерно такой.
-
просто формируешь вывод по другому
ихмо нет лишнит затрат времени
$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 .= "";
foreach($res[0] as $key => $value)
{
$HTML_TABLE.="
". $key ." | ";
for($i = 0; $i < $max; $i++)
{
$HTML_TABLE.="". $res[$i][$key] ." | ";
}
$HTML_TABLE.="
";
}
$HTML_TABLE .= "
";
-
можно еще запрос по-другому сформировать через селфджойны
-
интересный вариант. AliMamed черкани пример
-
Очень часто использую такое...
if ( ($result=mysql_query(\'SELECT * FROM db_name\'))!==false and (mysql_num_rows($result)>0)){
for ($data=array(); $row=mysql_fetch_assoc($result); )
foreach ($row as $key=>$val) $data[$key][]= $val!==\'\' ? $val : \' \';
echo \'\';
foreach ($data as $key=>$val) echo \'\'.$key.\' | \'.implode(\' | \',$val).\' |
\';
echo \'
\';
}
Но, сколько строк и столбцов ты выводишь ?
(просто если очень много, то прийдется вначале пользоваться MySQL решением - а выводить уже порядно - готовую таблицу )
-
Так, сколько строк и столбцов ты выводишь ?
нужно MySQL решение?