Navigation aus mysql DB

felixg

Grünschnabel
Hallo,
ich hab ein kleines Problem und zwar schreib ich an einem kleinen cms. Soweit funktioniert eigentlich alles nur habe ich das Problem, dass ich an der Navigation hänge.
Ich habe eine Tabelle navi mit den Spalten kat_id, link und vater_id. Die kat_id wird immer mit übergeben und anhand dieser wird der Seiteninhalt aus einer anderen Tabelle selektiert. Ich möchte nun ein Menü machen, bei dem erstmal alle Links aufgezeigt weren die bei vater_id eine null haben und dann sollte ein Link angeklickt werden, der untermenüpunkte enthält sollen diese in der Navi angezeigt werden.
Habe schonmal ein bischen rumgesucht und das hier gefunden, aber da meine Datenbank automatisch befüllt wird und die id s eventuell nicht in der richtigen Reihenfolge, bzw nicht zusammenhängend sind, denke ich funktioniert dass so nicht.
Für Tipps bin ich sehr dankbar.
Gruss Felix
 
Hallo

Versuch doch mal so was in die Richtung:

PHP:
$db = "XXXXXXXXXXXXX";
$link = mysql_connect( "server", "username", "passwort" );
	mysql_select_db( $db );

$query = "1";
$datensatz = "9";

while ($query <= $datensatz)
{
$result = mysql_query("SELECT id,name,link FROM navigation WHERE id = '$query'");
if (!$result) {
   echo 'Abfrage konnte nicht ausgeführt werden: ' . mysql_error();
   exit;
}
$row = mysql_fetch_row($result);

 print "<h3><a href=$row[2]>$row[1]</a></h3><p>";

$query++;
}

mysql_close( $link );
 
Hallo,
Vielen Dank schonmal, aber da ich sehr viele Links habe und nicht alle zeigen möchte, würde ich gerne die Treemenue Navi von Richard Heyes (Eine Demo) verwenden. Ich verwende die vlib Template classe. Das funktioniert schon ganz gut, nur die Navi klappt nicht. Ich habe in mein Template etwas PHP-Code geschrieben und übergebe aus meiner Index die Variablen.

Hier mal meine komplette Index
Code:
<?php
require_once "vlibTemplate.php";
$tmpl = new vlibTemplate('templates/template.htm');
$connect = mysql_connect('localhost', 'root', '');
//Navi Daten auslesen
mysql_select_db('handelec');

$sReadData = mysql_query("SELECT link, kat_id, sub1, sub2, sub3 FROM navi");


// Navi Array vorbereiten
$sBuildArray = array();
while ($sData = mysql_fetch_array($sReadData)) {
  array_push($sBuildArray,
     array(
         "sLink" => $sData["link"],
         "nId" => $sData["kat_id"],
//         "sub1" => $sData["sub1"],
//         "sub2" => $sData["sub2"],
//         "sub3" => $sData["sub3"]
     )
  );
}
$tmpl->setLoop("sArray", $sBuildArray);

//CMS Daten auslesen
if($id !='') {
$cmsresult = mysql_query("SELECT text, bild FROM cms where kat_id=".$id);}
else {
$cmsresult = mysql_query("SELECT text, bild FROM cms where kat_id=1");};
$tmpl->setdbloop('cms_data', $cmsresult);

// Info Daten auslesen
$inforesult = mysql_query("SELECT info_text FROM infos");
$tmpl->setdbloop('info_data', $inforesult);
$tmpl->pparse();
 ?>

So und nun das eigentliche Problem der Kopf meiner Templatedatei:
Code:
<?
if (!session_is_registered("tree")){
session_register("tree");}

<tmpl_loop name='sArray'>


	require_once('HTML/TreeMenu.php');

	//$icon         = 'folder.gif';
	//$expandedIcon = 'folder-expanded.gif';

	$menu  = new HTML_TreeMenu();

	$node{tmpl_var name='nId'}   = new HTML_TreeNode(array('text' => "::{tmpl_var name='sLink'}", 'link' => "index2.php?id={tmpl_var name='nId'}", 'icon' => $icon, 'expandedIcon' => $expandedIcon, 'expanded' => false));


    $menu->addItem($node{tmpl_var name='nId'});

    // Create the presentation class
    $treeMenu = &new HTML_TreeMenu_DHTML($menu, array('images' => '../images', 'defaultClass' => 'treeMenuDefault'));
</tmpl_loop>
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
und weiter unten wird dann die navi aufgerufen:

Code:
<?$treeMenu->printMenu()?>

Wenn ich das so mache bekomme ich diese Fehlermeldung:

Fatal error: vlibTemplate Error: Parse error!
To debug this file, use vlibTemplateDebug instead of vlibTemplate in the class instantiation(i.e. new vlibTemplateDebug). in C:\Programme\TSW\Apache2\htdocs\handelec.de\vlibTemplate\error.php on line 85

Ich hoffe mal dass dieses System so funktioniert, da ich anderst keine Möglichkeit sehe die Navigation zu machen. Ich habe leider noch sehr wenig erfahrung mit PHP und deshalb hoffe ich auf eure Hilfe. HAt jemand erfahrung mit vlib und dieser Art von Navigation, oder empfiehlt es sich auf eine ander Art zu wechseln.

Vielen Dank schonmal.

Gruss Felix
 
Zurück