вывод таблицы

Roneon

Новичок
вывод таблицы

Нужна помощь по PHP.
Дело такое... SQL-запрос возвращает таблицу, предположем, 7 столбцов. При этом
каждый следующий столбик по иерархии ниже предыдущего (не в бд естессно, а по
смыслу). то есть имеем что-то вроде:
--------
a1-b1-c1-d1-e1-f1-значение
a1-b1-c1-d1-e1-f1-значение
a1-b1-c1-d1-e1-f2-значение
a1-b1-c1-d1-e1-f2-значение
a1-b1-c1-d1-e1-f3-значение
a1-b1-c1-d1-e1-f4-значение
a1-b1-c1-d1-e2-f5-значение
--------
и вот чтобы много раз не дублировать первые 4 столбика, нужно сделать таблицу
типа:
--------
------------------e1----|--e2--
-------------f1-f2-f3-f4|-f5---
a1-b1-c1-d1--зн-зн-зн-зн|-зн---
--------
(зн=значение)

нужен совет, как это реализовать.
слышал, что можно через массивы (в цикле типа
"while($list=mysql_fetch_array($data))") ($darr[$d1][$f1]=зн), но толкового
ничего не вышло.
 

Фанат

oncle terrible
Команда форума
1. какое отношение этот вопрос имеет к базам данных?
А если бы данные брались не из базы, а из автоматизированной системы управления авиаперевозками, то ты бы пошёл со свим фопросом на форум авиадиспетчеров?

2. упрости задачу до двух столбиков, из которых один может повторяться.
и попробуй её решить
 

Roneon

Новичок
1. о_О
2. да суть фсё равно не в этом.. я рад ф принципе буду и примеру с двумя столбиками.. )
 

Кром

Новичок
Roneon
У тебя первые четыре столбца всегда одинаковые или тоже меняются на d2,d3 и т.д.?
 

alexhemp

Новичок
Очевидно данные имеют иерархическую структуру - поэтому и хранить их нужно соответственно - в дереве.

А по этому поводу на форуме не просто много информации - ее завались, одна из самых частых задач.
 

Roneon

Новичок
Кром
меняютсо

в общем, разобралсо... если кому понадобитсо фдруг:

$res = mysql_query($sql); // выводит 7 столбцов, как описано выше

$l1="<table><tr><td></td><td></td><td></td><td>Семейство</td>";
$l2="</tr><tr><td>Город</td><td>Торговая сеть</td><td>Магазин</td><td>Модель</td>";

unset($data);
if($res) while( $row = mysql_fetch_row($res))
$data[] =$row;
$ar= array();
for($i =0; $i< sizeof($data);$i++){
$a = array_shift($data[$i]);
$b = array_shift($data[$i]);
$c = array_shift($data[$i]);
$d = array_shift($data[$i]);
$e = array_shift($data[$i]);
$f = array_shift($data[$i]);
$g = array_shift($data[$i]);
$ar[$a][$b][$c][$d][$e][$f]= $data[$i];
$l1.="<td>$e</td>";
$l2.="<td>$f</td>";
if($d!=$do){
$l3.="<tr><td>$b</td><td>$c</td><td>$d</td><td></td>";
$do=$d;
};
$l3.="<td>$g</td>";
$r=$ar[$a][$b][$c][$d][$e][$f];
};
echo $l1.$l2.$l3;
 
Сверху