首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在php中从mysql的两个表创建一个列表。

在php中从mysql的两个表创建一个列表。
EN

Stack Overflow用户
提问于 2012-07-30 09:37:56
回答 3查看 290关注 0票数 0

如何在php中创建混合在一起的类别和主题类型的列表?

这意味着,该列表应如下所示:

代码语言:javascript
复制
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将类型放在类别之间?

目前我拥有的代码是这样的:

代码语言:javascript
复制
<?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中添加以包含类型。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-30 17:07:47

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

  1. 从数据库获取类别并在列表1中显示,带有子类别列表空
  2. 类别更改时使用jquery或javascript
  3. based在类别发布时提交表单从数据库中提取子类别并显示在列表2中,并选择列表1的属性,使其根据发布的类别值被选中。

你也可以使用ajax来代替提交表单。

票数 1
EN

Stack Overflow用户

发布于 2012-07-30 09:52:26

我相信您的types表中有一个id_cat。那么你应该使用SQL JOINs

票数 1
EN

Stack Overflow用户

发布于 2012-07-30 09:56:13

我没有为您提供代码,但查询可能是:

选择类别,从类别c中选择类型,c.id上的类型t= t.id按类别分组;

或者:

从类别中选择不同的类别;

然后分别查询每个类别。

我怀疑单一查询会更有效率。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11714491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档