我可能在这里疯了,但我很困惑为什么我的while
循环似乎永远不会结束,它导致页面持续加载,然后在几分钟后阻塞服务器。
基本上我有相册表
+----+--------+--------+
| id | title | parent |
+----+--------+--------+
| 1 | album1 | 0 |
+----+--------+--------+
| 2 | album2 | 0 |
+----+--------+--------+
| 3 | album3 | 2 |
+----+--------+--------+
| 4 | album4 | 3 |
+----+--------+--------+
| 5 | album5 | 4 |
+----+--------+--------+
| 6 | album6 | 1 |
+----+--------+--------+
所以基本上,我们这里有一个相册的层次结构,就像这个
- album1
^- album6
- album2
^- album3
^- album4
^- album5
我有另一张自己的照片表
+----+--------+-------+--------+
| id | title | album | master |
+----+--------+-------+--------+
| 1 | photo1 | 1 | 1 |
+----+--------+-------+--------+
| 2 | photo2 | 2 | 2 |
+----+--------+-------+--------+
| 3 | photo3 | 6 | 1 |
+----+--------+-------+--------+
| 4 | photo4 | 4 | 2 |
+----+--------+-------+--------+
| 5 | photo5 | 5 | 2 |
+----+--------+-------+--------+
| 6 | photo6 | 3 | 2 |
+----+--------+-------+--------+
所以你可以看到我有照片,它们属于每个相册,但我也希望能够看到它们属于哪个主相册,或者可能是最低的相册。
我不想在相册表中添加一个col,说明哪个相册是它的主相册。如果必须的话,我可以,但现在我想尝试一下,不用这么做
为了做到这一点,我想我会用while循环来做这件事。
因此,当我通过表单添加相册时,我通过一个隐藏的输入字段获得当前相册id,并将其绑定到$parent
$parent = $_POST['album'];
由于您无法在根目录中添加照片,相册id将始终大于1,因此即使我们将其添加为相册1,现在$parent
也将等于1
所以我介绍while标签
while ($parent>0) {
然后我从数据库中获得$parent
相册的相册数据,是的,我已经设置好了这个类并正在工作,我不认为这是问题所在,因为它在没有while循环的情况下可以独立工作。
$item = $mysql->get_data("photos_albums", $parent);
然后我检查$parent
相册的父相册是否大于0,因此不是根相册
if ($item['parent']>0) {
如果是,那么我们将$parent
更改为以前的相册$parent
,并再次运行它,直到我们得到一个父级为0 的相册
$parent = item['parent'];
如果它不大于0,那么我们知道它是0,并且$parent
专辑是最低可能的专辑,主专辑是这一个
} else {
$master = $item['id'];
}
}
所有这些结合在一起就是这个代码,对我来说这是不起作用的,只是导致页面不断加载。
$parent = $_POST['album'];
$master = 0;
while ($parent>0)
$item = $mysql->get_data("photos_albums", $parent);
if ($item['parent']>0) {
$parent = $item['parent'];
} else {
$master = $item['id'];
}
}
我是不是错过了什么?
只有当父级高于0 时,父级才会重置
if ($item['parent']>0) {
$parent = $item['parent'];
} else {
$master = $item['id'];
$parent = 0;
}
应修复
当您发现parent不大于0时-您没有设置while循环条件-$parent。
这就是你所缺少的东西,只有当$parent不是0时,你才会设置它。请确保更新这两个子句的条件。