Php 从表中获取父类别和子类别
我在这件事上惹麻烦了 目前正在为我的opencart网站中的产品和类别创建slug脚本。我有一个最大4级深的结构之前,产品本身 每个产品都存储一个包含类别的数组。客户插入产品的方式我并不总是有相同的情况。有时它只是最深的(4级)类别,有时它是从4级结构到顶部的所有类别。这是因为我使用opencart来显示父类别中的所有产品 因此,我正在编写一个脚本,该脚本在一个给定的类别id上收集所有类别名称。它必须寻找可能的父类和可能的子类 这并没有让我得到满意的结果。但我看到我几乎达到了想要的程度。虽然我的代码乱七八糟,这是我从未见过的 所以。。categories表保存类别id及其父id。如果没有父id,则父id=0 类别名称存储在另一个包含id和名称的表中 每个产品行都有一组类别id,我从中得到一个 我肯定我做错了,因为它们必须是一种检查所有子类别和父类别的方法,并通过一些嵌套循环获取它们的名称,这些嵌套循环只是我这里代码的一小部分Php 从表中获取父类别和子类别,php,mysql,opencart2.x,Php,Mysql,Opencart2.x,我在这件事上惹麻烦了 目前正在为我的opencart网站中的产品和类别创建slug脚本。我有一个最大4级深的结构之前,产品本身 每个产品都存储一个包含类别的数组。客户插入产品的方式我并不总是有相同的情况。有时它只是最深的(4级)类别,有时它是从4级结构到顶部的所有类别。这是因为我使用opencart来显示父类别中的所有产品 因此,我正在编写一个脚本,该脚本在一个给定的类别id上收集所有类别名称。它必须寻找可能的父类和可能的子类 这并没有让我得到满意的结果。但我看到我几乎达到了想要的程度。虽然我的
$products = $db->query("SELECT * FROM ".DB_PREFIX."product");
$products = $products->rows;
foreach ($products as $product) {
$url = $db->query("SELECT * FROM ".DB_PREFIX."url_alias WHERE query='product_id=".$product['product_id']."' LIMIT 1");
$url = $url->rows;
$url = $url[0];
$info = $db->query("SELECT * FROM ".DB_PREFIX."product_description WHERE product_id='".$product['product_id']."' LIMIT 1");
$info = $info->rows;
$info = $info[0];
$categories = $db->query("SELECT `bnc_category_description`.`name` , bnc_category_description.category_id FROM `bnc_product_to_category` JOIN `bnc_category_description` ON `bnc_product_to_category`.`category_id` = `bnc_category_description`.`category_id` WHERE `bnc_product_to_category`.`product_id` ='".$product['product_id']."' LIMIT 1");
$categories = $categories->rows;
$categories = $categories[0];
//$i = 1;
$parent = $db->query("SELECT category_id, parent_id FROM bnc_category WHERE category_id ='" . $categories['category_id'] . "'");
$parent = $parent->rows;
$parent = $parent[0];
$link = $parent['category_id'] . "_";
$n = $parent['category_id'];
$pr = $parent['parent_id'];
$y = $db->query("SELECT category_id, parent_id FROM bnc_category WHERE parent_id ='" . $parent['category_id'] . "'");
$y = $y->rows;
$y = $y[0];
$x = $db->query("SELECT name FROM bnc_category_description WHERE category_id = '" . $y['category_id'] . "'");
$x = $x->rows;
$x = $x[0];
$final = $x['name'] . "_";
while($pr != 0){
$s = $db->query("SELECT category_id, parent_id FROM bnc_category WHERE category_id ='" . $pr . "'");
$s = $s->rows;
$s = $s[0];
$pr = $s['parent_id'];
$n = $s['category_id'];
$link .= $n . "_";
}
$name = $db->query("SELECT name FROM bnc_category_description WHERE category_id = '" . $test['category_id'] . "'");
$name = $name->rows;
$name = $name[0];
$test = $db->query("SELECT category_id FROM bnc_category WHERE parent_id='" . $n . "'");
$test = $test->rows;
$test = $test[0];
$final .= $categories['name'] . "_" . $name['name'];
更喜欢加入表格并获得结果。看看这个:更喜欢连接表并获得结果。看看这个: