我如何在php中创建一个混合在一起的类别和主题类型的列表?
意思是,列表应如下所示:
Sports (this is a category)
Soccer (this is a type)
Golf (this is a type)
Basketball (this is a type)
Science (this is a category)
Biology (this is a type)
Chemistry (this is a type)
Anatomy (this is a type)
困难的部分是体育和科学来自同一张桌子(称为类别),足球,高尔夫,篮球,生物,化学和解剖学都来自不同的桌子(称为类型)。在MySQL表“types”中有一个外键,它指向categories表中条目的id。 MySQL中的当前设置无法轻易更改,因为站点的导航依赖于它。
我如何使用php将类型放在类别之间?
目前我的代码是:
<?php session_start ();
include 'connect.php';
$result = mysql_query("SELECT * FROM categories JOIN types ON categories.catid = types.typecat");
while($row = mysql_fetch_array($result))
{
echo $row["catname"];
}
?>
然而,这显然不应该输出“SportsSportsSportsSportsSportsScienceScienceScience”。体育有5种,科学有3种。所以我不确定那里发生了什么,我不能继续下一步添加PHP以包含类型。
答案 0 :(得分:1)
我相信你的类型表中有一个id_cat。 然后你应该使用SQL JOINs。
答案 1 :(得分:1)
我没有您的代码,但查询可能是:
选择类别,从类别c中键入,在c.id = t.id上按类别键入t;
或:
从类别中选择不同的类别;
然后单独查询每个类别
我怀疑单一查询会更有效率。
答案 2 :(得分:1)
我认为您需要两个主要类别和子类别的列表,如果是这样,您可以执行以下操作
您也可以使用ajax而不是提交表单。