从表

时间:2015-10-27 09:53:33

标签: php mysql opencart2.x

我正在努力解决这个问题。

目前正致力于在我的opencart网站上创建产品和类别的slugs的脚本。我在产品本身之前有一个最大的4升深度结构。

每个产品都存储一个包含类别的数组。客户端以一种我并不总是具有相同情况的方式插入产品。有时它只是最深的(lvl 4)类别,有时它是从4 lvl结构到顶部的所有类别。这是有效的,因为我有opencart来显示父类别中的所有产品。

所以我正在编写一个脚本,在一个给定的类别ID上收集所有类别名称。它必须寻找可能的父母和可能的孩子。

这不知道如何导致我满意的结果。但我发现我几乎处于理想的状态。虽然我的代码是一个像我以前从未见过的混乱。

所以..类别表包含类别ID和他的父ID。没有父亲时,父id = 0 类别名称存储在另一个包含id和name的表中。

每个产品行都包含一组类别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'];

0 个答案:

没有答案