展示孙子孙女和曾孙子孙女

时间:2015-10-19 05:16:04

标签: php mysql

我正在开发一个专注于植物和动物的网站。我有展示父母,祖父母和孩子的脚本。但我想学习如何展示孙子,曾孙等名单。

Taxons(field Taxon)在我的数据库中以父子关系列出。田地等级包括每个分类群的数值等级(例如物种为65)。这种关系看起来像这样:

Chordata (phylum, Rank = 15)
Mammalia (class, Rank = 25)
Carnivora (order, Rank = 35)
Felidae (family, Rank = 45)
Panthera (genus, Rank = 55)
Panthera-leo (species, Rank = 65)

分类单元也匹配网址。例如,您将导航到MySite / life / panthera-leo以查找有关狮子(Panthera leo)的信息。

这是我目前用于显示兄弟姐妹数量的脚本:

$stm = $pdo->prepare("select L.Taxon, count(*) - 1 Siblings
from gz_life_mammals L
inner join gz_life_mammals L on g.Parent = L.Parent
where L.Taxon = :MyURL
group by L.Parent");
$stm->execute(array(
'MyURL'=>$MyURL,
));

while ($row = $stm->fetch())
{
 $SiblingsCount = $row['Siblings'];
}

以下是我用来按名称显示兄弟姐妹列表的查询:

$stm = $pdo->prepare("SELECT Taxon, NameCommon, Parent from gz_life_mammals
 WHERE Parent = :Parent AND Taxon <> :MyURL
 ORDER BY NameCommon, Taxon");
 $stm->execute(array(
 'MyURL'=>$MyURL,
 'Parent'=>$Parent
 ));

while ($row = $stm->fetch())
{
 $Taxon = $row['Taxon'];
 $NameCommon = $row['NameCommon'];
}

假设我们导航到MySite / life / Mammalia(一个类)。我想显示该班级的订单,家庭,属和种类的数量。我应该为每个查询编写单独的查询,还是有办法在一个查询中获取子项,孙子等的数量?

为了澄清,我想我对展示孩子的数量等更感兴趣。显示一个孩子的名字列表相对容易,但是一个盛大的列表 - 孩子通常会占用太多空间。但是,让游客知道某个分类中的儿童,孙子,曾孙等的数量真的很酷。有人可以建议一个好的查询吗?

ON EDIT:这里更好地了解数据库架构。

分类| NameCommon |家长|等级

哺乳动物|哺乳动物| Chordata | 25

Carnivora | carnivoran |哺乳动物| 35

Ursidae |熊| Carnivora | 45

Ursus |熟悉的熊| Ursidae | 55

Ursus-arctos |棕熊| Ursus | 65

在这个特殊的例子中,哺乳动物会(我猜测)大约15个孩子(食肉目和所有其他哺乳动物的命令)。它可能有75个大孩子(哺乳动物家庭),500多个大孙子(属)和大约8,000个伟大的大孩子(物种)。

另一方面,家庭Ursidae将有三到四个孩子(包括Ursus属)和六个大孩子(物种)。

0 个答案:

没有答案