使用php从mysql的类别表中使用category_id从表返回数据

时间:2016-02-23 06:28:15

标签: php mysql

大家好,这是我的第一个问题,如果你能帮助我,我将非常感激。

我在mysql中有一个这样的表

//table items
id | item_name | description | link | category_id | is_active

我有另一张这样的表

//table categories
id  category_name | cat_description | is_active

我希望获取category_name中的所有数据,并在item_name列开启的情况下获取is_active的所有内容,以及类别is_active列是否已启用。

我试图创建一个能够使用html内容检索所有数据的函数,并且只是在某些条件为真的情况下。

我的功能是这样的:

    function getCatAndItems(){
    include "conn.php";
    $petition = mysqli_query($conn,"SELECT * FROM items,categories WHERE is_active=1");
    while ($row = mysqli_fetch_array($petition)) {
        $filename = $row['nombre'];
        $url       = $row['url_document'];

    echo "<a href=../docs/files/$url'><li>&nbsp;".$filename."</li></a>";
  }
}

我的目标是带来类别,如果类别处于活动状态,并且category_id中的items表与类别ID和is_active相同,它还会带来共享的items表中的数据相同的数字。

我希望你理解我,希望你能帮助我,谢谢

3 个答案:

答案 0 :(得分:1)

您可以使用JOIN

SELECT items.name, items.description, items.link, categories.category_name, categories.cat_description
FROM categories
JOIN items 
ON categories.id = items.category_id
WHERE categories.is_active = 1
AND items.is_active = 1;

答案 1 :(得分:0)

这两个表之间的简单inner join可以完成工作。

SELECT
      items.name,
      items.description,
      items.link,
      categories.category_name,
      categories.cat_description
FROM categories
INNER JOIN items ON categories.id = items.category_id
WHERE categories.is_active = 1
AND items.is_active = 1

答案 2 :(得分:0)

以下是您的查询:

select i.id,i.item_name,i.description,i.link,i.category_id,i.is_active,c.category_name 
               from items as i left join categories as c on i.category_id=c.id where 
               i.is_active=1 and c.is_active=1;