在mysql中创建两个表中的列表
问题描述:
如何在php中创建混合在一起的主题的类别和类型列表?在mysql中创建两个表中的列表
含义,名单应该是这样的:
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”中,有一个外键指向分类表中条目的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中包括类型。
答
我认为你需要与主类别和子类别两个列表,如果是的话,你可以做如下
- 获取从数据库和显示类别列表1子分类列表的变化空
- 的类别提交表单使用jquery或javascript
- 基于类别从数据库中发布获取子类别并在列表2中显示,并选择列表1的属性使其基于发布的类别值进行选择。
您也可以使用ajax而不是提交表单。
答
我没有代码给你,但查询可以是:
选择类别,键入类别c,类型t对c.id = t.id按类别分组;
或:
从类别中选择不同的类别;
然后分别查询每个类别。
我怀疑单个查询会更有效率。
向我们展示您当前的代码,您尝试过的方式,卡住的地方以及有人会帮助您。了解所有表格的完整信息无疑将有助于理解您的问题。 – Jocelyn 2012-07-30 01:45:13
完成类型table.job中的列“父”。 – itachi 2012-07-30 01:49:21