php中的combobox树视图&;mysql

php中的combobox树视图&;mysql,php,mysql,combobox,treeview,Php,Mysql,Combobox,Treeview,是否有人知道如何在组合框中显示MySQL db分层数据(嵌套集模型()),如“Category:”comboxbox字段下所示: 谢谢当你为你的组合框打印标签时,你需要检查每个元素的深度(如何获得深度在你问题中链接的文章中),并打印那么多的“|”字符串和另外两个下划线(uuuuuuu)以使它看起来像一棵树。 <?PHP function GetCats($id='0',$sublev='0',$vname='C_Parent') { $DQ = new MySQLTable; $DQ

是否有人知道如何在组合框中显示MySQL db分层数据(嵌套集模型()),如“Category:”comboxbox字段下所示:


谢谢

当你为你的组合框打印
标签时,你需要检查每个元素的
深度(如何获得深度在你问题中链接的文章中),并打印那么多的“|”字符串和另外两个下划线(uuuuuuu)以使它看起来像一棵树。


<?PHP
function GetCats($id='0',$sublev='0',$vname='C_Parent')
{
 $DQ = new MySQLTable;
 $DQ -> TblName = 'cat_categories';
 $WHERE[$vname]['=']=$id;
 $res = $DQ -> Select('C_ID,C_Name',$WHERE,'C_ID');
 if (mysql_num_rows($res)>0)
 {
  while($row = mysql_fetch_assoc($res))
  {
    $ss='';
   if($sublev!=='0')
   {
    for($i=0;$i<=$sublev*10;$i++)
    {
     $ss.='&nbsp;';
    }
    $ss.='|';
    for($i=0;$i<=$sublev;$i++)
    {
     $ss.='-';
    }
     $ss.='&gt;&gt;';
   }
   $sel_s = '';
   if(IsSet($_POST['C_Parent']))
   {
    if($row['C_ID']==$_POST['C_Parent'])
    {
     $sel_s = ' selected';
    }
   } elseif (IsSet($_POST['I_Parent'])) {
    if($row['C_ID']==$_POST['I_Parent'])
    {
     $sel_s = ' selected';
    }
   } else {
    $sel_s = '';
   }
   Echo "<option value=\"".$row['C_ID']."\" ".$sel_s.">".$ss.$row['C_Name']."</option>\r\n";
   GetCats($row['C_ID'],$sublev+1);
  }
 }
}


     Echo "<select name=\"C_Parent\">\r\n";
     Echo "<option value=\"0\">...</option>\r\n";
     GetCats();
     Echo "</select>";
     ?>
类似这样的东西。
但这是我自己的MySQL类。查询是:
选择C_ID,C_Name其中C_Parent=$ID ORDER BY C_ID
其中$ID-php变量(当前父类)。
如果选择了“错误提交到存储”,则会有$\u POST变量。
对于许多查询来说,这并不是最有效的方法。更有效的方法是将所有数据发送到阵列以进行处理