繁体   English   中英

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

[英]Create a list in php from two tables in mysql

如何在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表“类型”中,有一个外键指向类别表中条目的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以包括类型。

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

我没有适合您的代码,但是查询将是:
选择类别,从类别c中键入,在c.id = t.id上键入t按类别分组;
要么:
从类别中选择不同的类别;
然后分别查询每个类别。
我怀疑单个查询会更有效。

我认为您需要两个包含主类别和子类别的列表,如果可以的话,您可以执行以下操作

  1. 从数据库获取类别并显示在列表1中,而子类别列表为空
  2. 在更改类别时使用jquery或javascript提交表单
  3. 根据发布的类别从数据库中获取子类别并显示在列表2中,并根据发布的类别值将列表1的select属性设为选定。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM