这是我想要做的事情:-我需要一个函数,当将其作为参数传递时,ID(用于事物类别)将提供所有子类别,子子类别和子子子..etc 。-我在考虑使用递归函数,因为我不知道子类别及其子类别的数量,依此类推,这是到目前为止我一直在尝试的操作
function categoryChild($id) { $s = "SELECT * FROM PLD_CATEGORY WHERE PARENT_ID = $id"; $r = mysql_query($s); if(mysql_num_rows($r) > 0) { while($row = mysql_fetch_array($r)) echo $row['ID'].",".categoryChild($row['ID']); } else { $row = mysql_fetch_array($r); return $row['ID']; } }
如果我使用return而不是echo,我将不会得到相同的结果。我需要一些帮助以解决此问题或从头开始重写它
我很难弄清楚你的职能。我认为这会做您想要的。它获取ID为$ id的类别的所有子项,以及它们的子项(从而获得所需的整个子类别,子子类别效果)。
function categoryChild($id) { $s = "SELECT ID FROM PLD_CATEGORY WHERE PARENT_ID = $id"; $r = mysql_query($s); $children = array(); if(mysql_num_rows($r) > 0) { # It has children, let's get them. while($row = mysql_fetch_array($r)) { # Add the child to the list of children, and get its subchildren $children[$row['ID']] = categoryChild($row['ID']); } } return $children; }
该函数将返回:
$var = array( 'categoryChild ID' => array( 'subcategoryChild ID' => array( 'subcategoryChild child 1' => array(), 'subcategoryChild child 2' => array() ) ), 'anotherCategoryChild ID' => array() # This child has no children of its own );
它基本上返回一个具有子代ID的数组和一个包含其子代ID的数组。希望对您有所帮助。