Hej hej jeg bryder lige ind. HaHa
Jeg kunne forstille mig at du skulle gøre sådan her:
Første skal der søges efter emner (for at få alle emne id'erne):
SELECT * FROM min-tabel ORDER BY id;
Derefter skal du så søge efter de punkter som tilhører hver af dine
emner:
SELECT * FROM min-tabel WERER min-tabel.parentid = '$meneid';
det skal du gøre for hver af de emner der er i databasen.
MEN MEN MEN
Det måske ikke den bedste måde hvis du har mange emner eller hvis nogle af
punkterne har under punkter, for så skal man jo også søge efter dem.
Man kunne også meget vel kører en forespørgelser for så der efter at
sorterer det hele i PHP.
F.eks. noget i denne her retning (meget ogly kode men det skulle gå lidt
stærkt
)
<?
class TMenuItem {
var $id;
var $parentid;
var $title;
var $indhold;
var $arkiv;
var $items = array(); // Skal bruges til under punkter (TMenuItem).
//*****************************************
// Finder et objekt ud fra dets id.
//*****************************************
function FindObjectFromID( $theID ) {
var $obj;
var $i;
// OK, er det mig selv der har det id ?
if( $id == $theID ) {
return this;
}
// Vi tager den lange vej igennem alle objekter. Kan måske gøres bedre ?
for( $i=0; $i<sizeof($items); $i++) {
if( $obj = $items[ $i ]->FindObjectFromID( $theID ) ) {
return $obj;
}
}
return false;
}
.... // Mere kode.
}
class TMenu {
var $caption;
var $items = array();
...
//***********************************
// Indsetter et nyt menu object.
//***********************************
function InsertItem( $item ) {
var $i;
var $obj;
var $tmp;
if( $item->parent != 0 ) {
for( $i=0; $i<sizeof($items); $i++) {
if( $obj = $items[$i]->FindObjectFromID( $item->parentid ) ) {
$tmp = new TMenuItem;
$tmp->id = $item->id;
... // More init kode her.
$obj->items[] = $tmp;
return true;
}
}
}
else { // Indset et nyt top menupunkt.
var $tmp = new T_MenuItem;
$tmp->id = $item->id;
... // Mere init kode her
$items[] = $tmp;
}
} // ***** END: InsertItem *********
} // *** END CLASS: TMenu ***
$m = new TMenu;
$result = mysql_db_query ("database", "select * from table");
while ($row = mysql_fetch_object ($result)) {
$m->InsertItem( $row );
}
?>
Ja, så er det om til dig at hive alle tingende ud igen =
Øøhh jeg har ikke prøvet koden så der kan være mange fejl men... jeg håber
at det giver dig en ide om hvad jeg mener =
.
Og så lige til sidst så er jeg ikke den store PHP Guro... men det er meget
lig C++ som jeg kommer fra. Så jeg håber det er rigtigt!
Med venlig hilsen
John Mørck Hansen =
"KeZZe" <kezze@kezze.dk> skrev i en meddelelse
news:Ebbi6.54992$zw.983555@twister.sunsite.dk...
> > >Jeg vil gerne have en hierakisk menu, som jeg kun skal opdatere i min
> > >admin-del.
> > >Jeg har regnet ud, at den skal være i tråde, dvs. ligesom et
debatforum,
> men
> > >hvordan skal jeg gribe det an?
> >
> > Det kommer vist meget an på hvad du har forestillet dig.
> En menu lidt a'la:
> emne 1
> - punkt
> - punkt
> emne 2
> - punkt
> emne 3
> - punkt
>
> > Skal den ligge i databasen?
> Indholdet skal ligge der, ja.
>
> > Hvor mange hovedpunkter/underpunkter/niveauer regner du med?
>
> Jeg regner med cirka 5 hovedpunkter. Men det skal kunne udvides.
>
> Jeg regner med, at jeg skal have disse felter i databasen:
> id | parentid | titel | indhold | aktiv
>
> men ligenu er det eneste interessante jo id og parent.
> Hvordan får jeg rullet dem igennem og vist dem som
hovedpunkter/underpunkter
> i menuen?
>
> --
> /KeZZe
> Mail: mailto:kezze@kezze.dk