webForumDet fria alternativet

Skriva ut meny med flera undernivåer?

Databaser & SQL

0 svar · 249 visningar · startad av Neo

Medlem sedan dec. 200079 inlägg
Frågan#1

Hej!

Jag vet inte om detta inlägget ska vara i PHP eller MySQL men jag tror det passar bäst här...

Jag har en tabell med id, title, level och linkid.

Det jag vill göra är att skriva ut alla nivåer med undersidor för varje id (typ filhanteraren i Windows).

exempel på struktur:

mobiltelefoner (level 0 id 1 linkid *)
nokia 666 (level 1 id 2 linkid 1)
headset till 666 (level 2 id 5 linkid 2)
nokia 123 (level 1 id 3 linkid 1)
ericsson T65 (level 1 id 4 linkid 1)

Problemet som jag har är att jag inte lyckas kolla mer än en nivå i taget och att undernivåerna skrivs ut igen när jag kollar nästa level...

(Koden är lite skum pga att jag positionerar DIV:ar och det ska gå att dra i dem också...)

KOD:
<?
//SELECT * from e_page WHERE linkid='$id' AND user='0'

$starttop = '100';
$startleft = '200';
$startlevel = '0';

$sql = "SELECT * from e_page order by level ASC";
$result = mysql_query($sql);
$array = mysql_fetch_array($result);
if (mysql_num_rows($result)>0) {
do {

$menuid = $array["id"];
$linkid = $array["linkid"];
$title = $array["title"];
$level = $array["level"];

if ($level!=$startlevel) {
$startleft = $startleft + 220;
}

$startlevel = $level;

$sublevel = $level + 1;

printf("<DIV id=\"r%sDiv\" style=\"position:absolute; left:$startleft; top:$starttop; width:170; height:10; z-index:1;\" class=\"rubriktop\"><B>%s</B> (id %s) (level %s)</DIV>
<DIV id=\"r%stargetDiv\" style=\"position:absolute; left:$startleft; top:$starttop; width:170; height:10; z-index:0;\" class=\"target\"><B>%s</B> (id %s) (level %s)</DIV>",$menuid,$title,$menuid,$level,$menuid,$title,$menuid,$level);

$starttop = $starttop + 20;

// undersidor

$subsql = "SELECT * from e_page WHERE linkid='$menuid' AND level='$sublevel'";
$subresult = mysql_query($subsql);
$subarray = mysql_fetch_array($subresult);
if (mysql_num_rows($subresult)>0) {
do {

$submenuid = $subarray["id"];
$sublinkid = $subarray["linkid"];
$subtitle = $subarray["title"];
$sublevel = $subarray["level"];

$substartleft = $startleft + 10;

printf("<DIV id=\"r%sDiv\" style=\"position:absolute; left:$substartleft; top:$starttop; width:170; height:10; z-index:1;\" class=\"rubrik\"><A HREF=\"http://eyesite.se\">%s</A> (%s) (lev %s) (lid %s)</DIV>
<DIV id=\"r%stargetDiv\" style=\"position:absolute; left:$substartleft; top:$starttop; width:170; height:10; z-index:0;\" class=\"target\"><B>%s</B> (%s) (lev %s) (lid %s)</DIV>",$submenuid,$subtitle,$submenuid,$sublevel,$sublinkid,$submenuid,$subtitle,$submenuid,$sublevel,$sublinkid);

$starttop = $starttop + 20;

} while ($subarray = mysql_fetch_array($subresult));
}

// slut undersidor

} while ($array = mysql_fetch_array($result));
}
?>

------------------
I´m your poweranimal, start sliding!

262 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
142 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)