gpt4 book ai didi

php - 使用查询而不是 PHP 中的循环构建 Mysql 表树

转载 作者:行者123 更新时间:2023-11-30 01:12:38 25 4
gpt4 key购买 nike

我有一个类别树,最多包含 3 级子类别,如下所示:

家居用品->客厅->沙发->双人座

家居产品->客厅->沙发->三人座

家居产品->客厅->沙发->四人座

因此,对于每个子级别,我都会根据母亲的类别 ID 进行选择。这是在 PHP 循环中完成的,如下面的代码,但我想它可以在单个 Mysql 查询中完成,以获得更好的性能。我尝试过不同的 JOINS 但发现它真的很困难。任何建议都将受到高度赞赏。

function build_category_tree() 
{
$cat = array();

// main category loop
$r1 = mysql_query("SELECT cat_id,cat_name FROM categories WHERE cat_mother=0 OR cat_mother='' ORDER BY cat_name");
while ($row=mysql_fetch_assoc($r1))
{
$cat[$row['cat_id']] = $row['cat_name'];

// check for subcategories
$r2 = mysql_query("SELECT cat_id,cat_name FROM categories WHERE cat_mother='".$row['cat_id']."'");
while ($subrow=mysql_fetch_assoc($r2))
{
$cat[$subrow['cat_id']] = ' - '.$subrow['cat_name'];

// check if there is subcats for the current subcategory
$r3 = mysql_query("SELECT cat_id,cat_name FROM categories WHERE cat_mother='".$subrow['cat_id']."'");
while ($subrow2=mysql_fetch_assoc($r3))
{
$cat[$subrow2['cat_id']] = ' -- '.$subrow2['cat_name'];

// check if there is subcats for the current subcategory
$r4 = mysql_query("SELECT cat_id,cat_name FROM categories WHERE cat_mother='".$subrow2['cat_id']."'");
while ($subrow3=mysql_fetch_assoc($r4))
{
$cat[$subrow3['cat_id']] = ' --- '.$subrow3['cat_name'];
}
}
}
}
return $cat;
}

最佳答案

我会将你的整个表读入一个数组,并通过母键对该数组进行分段

关于php - 使用查询而不是 PHP 中的循环构建 Mysql 表树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19348815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com