在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中包括类型。

+0

向我们展示您当前的代码,您尝试过的方式,卡住的地方以及有人会帮助您。了解所有表格的完整信息无疑将有助于理解您的问题。 – Jocelyn 2012-07-30 01:45:13

+0

完成类型table.job中的列“父”。 – itachi 2012-07-30 01:49:21

我认为你需要与主类别和子类别两个列表,如果是的话,你可以做如下

  1. 获取从数据库和显示类别列表1子分类列表的变化空
  2. 的类别提交表单使用jquery或javascript
  3. 基于类别从数据库中发布获取子类别并在列表2中显示,并选择列表1的属性使其基于发布的类别值进行选择。

您也可以使用ajax而不是提交表单。

我相信你的类型表中有一个id_cat。 然后你应该使用SQL JOINs

我没有代码给你,但查询可以是:
选择类别,键入类别c,类型t对c.id = t.id按类别分组;
或:
从类别中选择不同的类别;
然后分别查询每个类别。
我怀疑单个查询会更有效率。