我的数据库中有“类别”和“子类别”。数据库表包含“ cid”,“ pid”和“ cname”列。
Cid =类别ID
Pid =如果Category是子类别,则Pid =属于哪个类别。
Cname =类别名称
例如,“软件”是一个类别,ID = 15,“ IOS软件是一个子类别,ID = 30,PID = 15”
现在,我想向您展示这只猫。和子猫在一张桌子上。这是我的代码:
<?php
function categories() {
$categorysql = $DB['DB_Database']->query("SELECT cid, pid, cname FROM categories GROUP BY cid");
while ($row = $DB['DB_Database']->fetch_assoc($categorysql))
{
if ($row['pid'] > 0 {
}
else {
$catid = $row['cid'];
$catname = $row['cname']; }
}
使用此代码,我只能显示“主要类别”。示例图片在这里:
但我想这样显示:
我的表代码如下:
<table width="268" border="1">
<tr>
<td width="52" rowspan="2" valign="top">Image</td>
<td width="200" height="23"><a href="{$catid}">{$catname}<a></td>
</tr>
<tr>
<td height="36" valign="top">This ara for sub cat.</td>
</tr>
</table>
那么,我该怎么办呢?
我建议更改您的php代码,使其与以下使用的sql一起使用OUTER JOIN
:
select c.cname, c2.cname subname
from categories c
left join categories c2 on c.cid = c2.pid
where c.pid is null
假定父级的pid字段为null。或者,您可以使用GROUP_CONCAT
一行而不是多行返回所有子类别-这对于您的实现而言可能会更容易。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句