Treeview从数据库填充

时间:2012-07-25 08:53:47

标签: php mysql database treeview

我一直在试图弄清楚如何使用我遇到的各种例子来创建一个从数据库中填充过去几天的树视图,但到目前为止还没有成功。

我的数据库结构如下: id | parent_id |标题|紧迫性(紧急程度尚未实施)

最终结果应生成树视图,其中紧急度值决定了每个项目使用的图像。

我最近试图使用的代码是:

<hmtl>
<body>
<?php

function get_children($parent, $level = 1)
{
$result = mysql_query('SELECT * FROM treeview_items WHERE parent_id = '.$parent);
$result2 = mysql_fetch_array($result, MYSQL_ASSOC);
#for avoiding some errors
if(mysql_num_rows($result) > 0)
    #start the list
    echo '<ul>';
    foreach($result2 as $row) {
        #print the item, you can also make links out of these
        echo '<li>'.$row['title'].'</li>';
        #this is similar to our last code
        #this function calls it self, so its recursive
        get_children($row['id'], $level+1);
    }
    #close the list
echo '</ul>';
}

mysql_connect('localhost', 'root');
mysql_select_db('test');

$result = mysql_query('SELECT * FROM treeview_items');
$result2 = mysql_fetch_array($result, MYSQL_ASSOC);

#for avoiding some errors
if(mysql_num_rows($result) > 0) {
#start the list
echo '<ul>';
foreach($result2 as $row) {
    #print the item, you can also make links out of these
    echo '<li>'.$row['title'].'</li>';
    #recursive function(made in next step) for getting all the subs by passing   
 id of main item
    get_children($row['id']);
}
#end the list
echo '</ul>';
#some message if the database is empty
}
else echo 'No Items';

#clear the memory
mysql_free_result($result);
?>
</body>
<html>

基本上我的代码不起作用所以我希望有人可以帮我解决这个问题。任何帮助是极大的赞赏! :)

修改

我修改了一些代码来修复一些错误 所以我现在看到的是:

  • 1
  • 2
  • 5

警告:在第13行的C:\ Program Files \ EasyPHP-5.3.9 \ www \ test.php中为foreach()提供的参数无效

重复100次直至中止。不确定原因,因为代码中的foreach()都相同,但函数内部的{{1}}不起作用

3 个答案:

答案 0 :(得分:0)

函数调用失败的原因是因为你没有在PHP标记中包装该代码,而是将它们包装在JS标记中。

答案 1 :(得分:0)

<script...行替换为<?php,将</script>行替换为?>

你在php中有服务器端代码,而不是客户端javascript(根据语法判断)

答案 2 :(得分:0)

谢谢你的帮助,但是Jey设法解决了我的问题,基本上给了我全新的代码lol

以下是另一个问题的代码链接: Categories with sub PHP / MYSQL

谢谢杰伊,以及其他所有人! :)