Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何列出自关系表?_Php_Mysql_Sql - Fatal编程技术网

Php 如何列出自关系表?

Php 如何列出自关系表?,php,mysql,sql,Php,Mysql,Sql,我有一张这样的桌子: +----+-------+--------+ | id | title | parent | +----+-------+--------+ | 1 | text1 | NULL | +----+-------+--------+ | 2 | text2 | NULL | +----+-------+--------+ | 3 | text3 | NULL | +----+-------+--------+ | 4 | text4 | 1 |

我有一张这样的桌子:

+----+-------+--------+
| id | title | parent |
+----+-------+--------+
| 1  | text1 |  NULL  |
+----+-------+--------+
| 2  | text2 |  NULL  |
+----+-------+--------+
| 3  | text3 |  NULL  |
+----+-------+--------+
| 4  | text4 |   1    |
+----+-------+--------+
| 5  | text5 |   1    |
+----+-------+--------+
| 6  | text6 |   2    |
+----+-------+--------+
| 7  | text7 |   3    |
+----+-------+--------+
| 8  | text8 |   5    |
+----+-------+--------+
• text1
    ○ text4
    ○ text5
        ♦ text8
• text2
    ○ text6
• text3
    ○ text7
“父项”是“id”的外键 我想用html列出这些行

列表应如下所示:

+----+-------+--------+
| id | title | parent |
+----+-------+--------+
| 1  | text1 |  NULL  |
+----+-------+--------+
| 2  | text2 |  NULL  |
+----+-------+--------+
| 3  | text3 |  NULL  |
+----+-------+--------+
| 4  | text4 |   1    |
+----+-------+--------+
| 5  | text5 |   1    |
+----+-------+--------+
| 6  | text6 |   2    |
+----+-------+--------+
| 7  | text7 |   3    |
+----+-------+--------+
| 8  | text8 |   5    |
+----+-------+--------+
• text1
    ○ text4
    ○ text5
        ♦ text8
• text2
    ○ text6
• text3
    ○ text7
我需要sql_代码和php

谢谢…

您应该了解:


请注意,本文推荐了一种不同于普通父id/id设置的方法。

上面的MySQL代码非常优秀。。这是我为PHP代码所做的一点努力

while($lev = mysql_fetch_array($category)){

    echo $lev['lev1'];
    echo '<br>';
    if($lev['lev2'] != NULL)
    {
        &nbsp;echo $lev['lev2'];
        echo '<br>';
        if($lev['lev3'] != NULL)
        {
            &nbsp;&nbsp;echo $lev['lev3'];
            echo '<br>';
            if($lev['lev4'] != NULL)
            {
                echo $lev['lev4'];  
            }   
        }   
    }
}
while($lev=mysql\u fetch\u数组($category)){
echo$lev['lev1'];
回声“
”; 如果($lev['lev2']!=NULL) { echo$lev['lev2']; 回声“
”; 如果($lev['lev3']!=NULL) { echo$lev['lev3']; 回声“
”; 如果($lev['lev4']!=NULL) { echo$lev['lev4']; } } } }
对于MySQL,您需要在应用程序代码中这样做,因为MySQL不支持递归查询(与大多数其他DBMS不同),为什么文本7在文本5下?为什么要发两次短信呢?你应该仔细阅读,这样会对你有帮助you@a_horse_with_no_name也许你应该把它加上;)如果水平不是像中那样恒定的呢