verbesserung der folgenden klasse:
alex
- php
hallo,
hier habe ich nochmal die klasse. jetzt geht alles wie gewünscht, nur könnte man an der klasse selbnst noch was verbessern. mit OOP beschäftige ich mich noch nicht so lang.
Besonders würde mich interessieren, ob man an den parametern der funktionen noch was ändern kann. es wird ja in beiden funktionen $mid als parameter übergeben.
<?
include("class_mysql.php");
class tree extends db{
function select_submenu($mid){
$sql = "SELECT a.node_id , a.lft , a.rgt , a.payload
FROM node AS a
INNER JOIN node AS b ON (a.lft <= b.lft AND a.rgt >= b.rgt)
WHERE b.node_id = '$mid'
ORDER BY a.lft";
$res=$this->sql($sql);
$level = 2;
$submenu = "level <= $level";
while($row = mysql_fetch_array($res)){
if($level > 2){
$submenu .= " OR (L > ".$row['lft']." AND R < ".$row['rgt']." AND level = ".$level.")";
}
$level++;
}
return $submenu;
}
function show_menu($mid){
GLOBAL $PHP_SELF;
$sql = "SELECT pages1.lft AS L, pages1.rgt AS R,
CONCAT(LPAD(pages1.node_id, 2 ,' '),
REPEAT(' .', COUNT(*) ),
pages1.payload) AS Baum ,
pages1.node_id AS mid,
COUNT(*) AS level
FROM node AS pages1, node AS pages2
WHERE pages1.lft BETWEEN pages2.lft AND pages2.rgt AND pages1.lft > '1'
GROUP BY pages1.lft
HAVING ".$this -> select_submenu($mid);
$res = $this -> sql($sql);
while($row = mysql_fetch_assoc($res)){
$menu_arr[]=$row;
}
$table = "<tr>";
foreach($menu_arr as $values) {
for($i=0; $i<1; $i++){
$table .="<td><a href='$PHP_SELF?mid=".$values['mid']."'>".$values['Baum']."</a></td>";
}
$table .= "</tr>";
}
return "<table border='1'>$table</table>";
}
}
?>