Gå til innhold

Trestruktur fra database


Anbefalte innlegg

Hei,

 

Jeg sliter litt! Slik er strukturen i tabellent FOO:

 

id, name, sub_id

 

Så jeg prøver å lage en trestruktur hvor f. eks. en rad som har sub_id som matcher med en id skal flyttes en tab bortover: \t.

 

Jeg får det rett og slett ikke til!

Noen som har tips.. skrive noe "liksomkode" opplegg som forklarer hvordan jeg burde gå frem?

 

Mange takk!

Natta!

Lenke til kommentar
Videoannonse
Annonse
Gjest Slettet-rXRozPkg

Noe slikt kanskje?:

 

$res = SELECT * FROM FOO WHERE sub_id = 0;
while $row = fetchrow($res) {
 $level = 1;
 echo $row['id']." => ".$row['name']."\n";
 recursiveSelect($id,$level);  
}

function recursiveSelect($id,$tablevel) {
 $res = SELECT * FROM FOO WHERE sub_id = $id;
 while $row = fetchrow($res) {
echo str_repeat("\t",$tablevel);
echo $row['id']." => ".$row['name']."\n";
$tablevel++;
recursiveSelect($row[id],$tablevel);
 }
}

Endret av Slettet-rXRozPkg
Lenke til kommentar

Oki! Sånn ble da resultatet! Da med samme tabell som jeg har nevnt over!

 

<pre><?php

$link = mysql_connect('localhost', 'root', '');
if (!$link) {
die('Not connected : ' . mysql_error());
}

// make foo the current db
$db_selected = mysql_select_db('test', $link);
if (!$db_selected) {
die ('Can\'t use foo : ' . mysql_error());
}

$q = mysql_query('select * from test');

$hir = array();

$groundArray = array();
$flyArray = array();

while ($fetchRow = mysql_fetch_object($q))
{
if ($fetchRow->sub_id == 0)
{
	$groundArray[$fetchRow->id] = array('name' => $fetchRow->name);
}
else
{
	$flyArray[$fetchRow->sub_id][$fetchRow->id] = array('name' => $fetchRow->name);
}
}


foreach ($groundArray as $id => $content)
{
$inside = '';
$inside = array();

$inside = getHaha($id);

if (!empty($inside))
{
	$hir[$id] = $content + array('sub' => $inside);   
}
else
{
	$hir[$id] = $content;   
}
}

function getHaha($id)
{
global $flyArray;

$hir = array();

if (isset($flyArray[$id]))
{
	foreach ($flyArray[$id] as $id => $content)
	{
		$inside = '';
		$inside = array();

		$inside = getHaha($id);

		if (!empty($inside))
		{
			$hir[$id] = $content + array('sub' => $inside);  
		}
		else
		{
			$hir[$id] = $content;
		}   
	}
}	

return $hir;
}

print_r($hir);

echo '</pre>';

 

Tusen takk for hjelp! :)

I natt kommer jeg til å sove godt :D.

Endret av nevoscript
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...