Php 从MySQL中的分层数据获取数据

Php 从MySQL中的分层数据获取数据,php,mysql,codeigniter,Php,Mysql,Codeigniter,我存储多级分类。该表如下所示: 类别表 公司\类别\映射表 我想从类别表中获取所有类别、子类别、子类别与公司id有关的信息。我不知道该怎么做。我可以为门店公司类别创建新表吗 我想在下拉列表中显示输出。 我有三个下拉列表一个是主类别下拉列表,第二个是子类别下拉列表,第三个是子类别下拉列表。下拉列表是按公司填写的,即不同的公司有不同的类别 输出显示屏 对不起我的英语 谢谢你的帮助。试试这段代码 SELECT c1.`category_name` as `category` , c2.`cate

我存储多级分类。该表如下所示:

类别表 公司\类别\映射表 我想从类别表中获取所有类别、子类别、子类别与公司id有关的信息。我不知道该怎么做。我可以为门店公司类别创建新表吗

我想在下拉列表中显示输出。 我有三个下拉列表一个是主类别下拉列表,第二个是子类别下拉列表,第三个是子类别下拉列表。下拉列表是按公司填写的,即不同的公司有不同的类别

输出显示屏

对不起我的英语

谢谢你的帮助。

试试这段代码

  SELECT c1.`category_name` as `category` , c2.`category_name` as `sub-category`, c3.`category_name` as `sub-sub-category` FROM `categories` as c1
    LEFT JOIN `categories` as c2 ON c1.`category_id`=c2.`parent_category_id`
    LEFT JOIN `categories` as c3 ON c2.`category_id`=c3.`parent_category_id`
    where c1.`parent_category_id` IS NULL
关于公司识别码

SELECT cm.`company_id`, c1.`category_name` as `category` , c2.`category_name` as `sub-category`, c3.`category_name` as `sub-sub-category` FROM `categories` as c1
LEFT JOIN `categories` as c2 ON c1.`category_id`=c2.`parent_category_id`
LEFT JOIN `categories` as c3 ON c2.`category_id`=c3.`parent_category_id`
INNER JOIN `company_category_mapping` as cm ON cm.`category_id`=c3.`category_id`
    where c1.`parent_category_id` IS NULL
如果您需要获取特定公司id的数据

例如:公司id=7

SELECT cm.`company_id`, c1.`category_name` as `category` , c2.`category_name` as `sub-category`, c3.`category_name` as `sub-sub-category` FROM `categories` as c1
    LEFT JOIN `categories` as c2 ON c1.`category_id`=c2.`parent_category_id`
    LEFT JOIN `categories` as c3 ON c2.`category_id`=c3.`parent_category_id`
    INNER JOIN `company_category_mapping` as cm ON cm.`category_id`=c3.`category_id` AND cm.`company_id`=7
        where c1.`parent_category_id` IS NULL
试试这个代码

我使用mysqli来避免问题和黑客攻击


你试过什么东西吗?你能把你期望的东西放出来吗?使用为什么不创建三个循环。首先,将显示所有主类别,其中父类别为空,并且给出了companyid。第二个循环将取决于第一个循环categoryids的结果。StackOverflow不是一个可以发布代码并让人们为您编写代码的地方。你必须尝试一些东西,并展示出你被卡住的地方。谢谢你的回复。但是我想展示关于公司id的分类。它对我有用@克坦伊。此代码中的一个更改是父级\u类别\u名称应为父级\u类别_id@KRISHNA我已经更新了代码。如果有效,则标记为正确
SELECT cm.`company_id`, c1.`category_name` as `category` , c2.`category_name` as `sub-category`, c3.`category_name` as `sub-sub-category` FROM `categories` as c1
LEFT JOIN `categories` as c2 ON c1.`category_id`=c2.`parent_category_id`
LEFT JOIN `categories` as c3 ON c2.`category_id`=c3.`parent_category_id`
INNER JOIN `company_category_mapping` as cm ON cm.`category_id`=c3.`category_id`
    where c1.`parent_category_id` IS NULL
SELECT cm.`company_id`, c1.`category_name` as `category` , c2.`category_name` as `sub-category`, c3.`category_name` as `sub-sub-category` FROM `categories` as c1
    LEFT JOIN `categories` as c2 ON c1.`category_id`=c2.`parent_category_id`
    LEFT JOIN `categories` as c3 ON c2.`category_id`=c3.`parent_category_id`
    INNER JOIN `company_category_mapping` as cm ON cm.`category_id`=c3.`category_id` AND cm.`company_id`=7
        where c1.`parent_category_id` IS NULL
$results = $mysqli->query( "SQL
SELECT *
FROM `categories` as c1
LEFT JOIN `categories` as c2 ON c1.`category_id`=c2.`parent_category_name`
LEFT JOIN `categories` as c3 ON c2.`category_id`=c3.`parent_category_name`
where c1.`parent_category_name` IS NULL");echo 'Results is: ' . $result;