本文目录一览:
- 1、php 知道父类id查找所有子类id,怎么写。
- 2、php中怎么判断某个类或对象继承于哪个父类
- 3、php写函数 根据子类(id)递归查找顶级父类(id) 返回父类名字 (表结构:id name pid)
php 知道父类id查找所有子类id,怎么写。
function getAllIds($id)
{
$res = mysql_query("select * from `表名` where father_id='$id'");
while($row = mysql_fetch_array($res,MYSQL_ASSOC))
{
print_r($row);
getAllIds($row['class_id']);
}
}
php中怎么判断某个类或对象继承于哪个父类
?php
class A{
public function show(){
echo '调用方法';
}
}
class B extends A{
}
$b = new B();
$b-show();
php写函数 根据子类(id)递归查找顶级父类(id) 返回父类名字 (表结构:id name pid)
你这种表结构叫邻接表,查询的方式通过自连接。如
SELECT t1.name AS lev1, t2.name as lev2, t3.name as lev3, t4.name as lev4
FROM Tbname AS t1
LEFT JOIN Tbname AS t2 ON t2.pid = t1.id
LEFT JOIN Tbname AS t3 ON t3.pid = t2.id
LEFT JOIN Tbname AS t4 ON t4.pid = t3.id
WHERE t1.name = 'XXXX'
这种方法的主要局限是你需要为每层数据添加一个自连接,随着层次的增加,自连接
变得越来越复杂,检索的性能自然而然的也就下降了。当然这种结构在查询前必须知道该节点所处的层级,否则无法确定自连接的深度。
邻接表模型的局限性很大,用纯SQL实现有一定的难度。不妨考虑其他模型,比如嵌套模型。
嵌套模型的基本结构是树型结构,SQL检索比邻接表要方便很多。
关于嵌套模型,PHPChina的第一期电子杂志PHPer也有过深入探讨,请参考!