Tablazat megjelenitese, header betordelessel

zptoth képe

Sziasztok! Ismet egy furmanyos kerdesem van.

Vannak adataim egy adatbazisban: http://www.lingvini.com/drupal/database.png
Szeretnem oket tablazatosan megjeleniteni, valahogy igy: http://www.lingvini.com/drupal/display.png

Van egy ilyen kodom:

$header = array('', '');
$rows = array();
 
$result = db_query("SELECT PropertyName, PropertyValue FROM {ProductProperties} WHERE SKU = '%s' ORDER BY DisplayWeight ASC", $model );
 
while ($node = db_fetch_object($result))
{
 $rows[] = array($node->PropertyName, $node->PropertyValue);
}
return theme('table', $header, $rows);

Ez egy kezdemeny, ami ki tud listazni tablazatos formaban adatokat egy adatbazis tablabol. De ez egydump, ami max sorba van rendezve + van 1 db header hozza.

A csavar ott van (amint a display.png is abrazolja), hogy szeretnem a fobb kategoriak nevet header-kent betordelni a tablazatba. Es az adatbazisban egy plusz oszlopkent latszik.

Szeretnem a tablazat dinamikus voltat megorzni, azaz nem fixen lerogziteni es annyi tablazatot megjeleniteni, amenyi kategoria csoport (heaer) van, hanem a rendelkezesre allo adatokbol az egeszet legeneralni.

Hogyan kene ennek nekiindulni?

Fórum: 
pp képe

Rendezd a csoport szerint, és tedd bele a lekérdezett adatokba a csoport nevét is.
Indulhat a ciklus ami leszedi az adatokat. Mindig eltárolod az előző csoport nevét. Ha ez nem egyezik, akkor kinyomod a táblázatot, törlöd a tömbödet és elkészíted az új headert és mehet tovább minden. A ciklus végén még kinyomod a maradékot. A caption-be meg beállítod az aktuális csoport nevét...

pp

0
0
zptoth képe

Ilyesmivel probalkozom egyebkent, csak nem akar ossze jonni.
Lehet, hogy a tombot torolni kellett volna :)

0
0
zptoth képe

No, sikerult valami ilyesmi template-et osszegyurni, ami funcionalisan kb. OK.
Mar csak formazni, sort-olni, szepitgetni kell. Pl. valami fix szelesseg jo lenne..

$result = db_query("SELECT DISTINCT PropertyName, PropertyValue, PropertyGroup, DisplayWeight, GroupDisplayWeight FROM {ProductProperties} WHERE SKU = '%s' ORDER BY DisplayWeight ASC", $model );
 
$tmpgroup = -1;
 
while ($node = db_fetch_object($result))
{
	 if ($tmpgroup != $node->GroupDisplayWeight)
		{
 
		if ($tmpgroup != -1)
			{
			//write table when we have a new group
                       print theme('table', $header, $rows); 
			}
		 $tmpgroup = $node->GroupDisplayWeight;
                 unset($rows);
                 $header = array($node->PropertyGroup,'');
		}
     $rows[] = array($node->PropertyName, $node->PropertyValue);
}
0
0