谁知道如何在组合框中显示MySQL db分层数据(嵌套集合模型(http://www.phpro.org/tutorials/Managing-Hierarchical-Data-with-PHP-and-MySQL.html)),如此处的“类别:”组合框字段:http://dir.globetourism.biz/submit.php下所示
谢谢
发布于 2010-06-26 16:22:47
当您打印组合框的<option>标记时,您必须检查每个元素的depth (如何获取深度在问题中链接的文章中),并打印许多"|“字符串和另外两个下划线(__),以使其看起来像树一样漂亮。
发布于 2010-06-26 16:29:40
<?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.=' ';
}
$ss.='|';
for($i=0;$i<=$sublev;$i++)
{
$ss.='-';
}
$ss.='>>';
}
$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类。查询是: php where $id -php变量(当前父猫)。
如果选择了错误提交到存储,则会有$_POST变量。
这不是解决问题的最有效的方法,因为有很多查询。更有效的方法是将所有数据放到数组中进行处理。
https://stackoverflow.com/questions/3123120
复制相似问题