PHP mysqli做while循环-显示具有1条或更多条相关记录的分类

时间:2018-07-25 19:56:56

标签: php mysql join

我很肯定这是一个简单的任务,但是由于某些原因,我只是找不到一个资源来帮助我编写我正在写的网站。

我基本上有一个类别表和一个成员表,该表包含一个cat_id,对应于所述类别。

我目前正在运行do while循环,因此它会在表中显示所有分类,但是,如果成员表中有一条带有相应cat_id的记录,我现在只想显示类别表中的分类。这将对我有帮助,当我添加新成员时,该目录将自动出现在网站上。

我当前的代码是;

<?php                                       
$cat_sql="SELECT * FROM Categories ORDER BY Category";                  
$cat_query=mysqli_query ($conn, $cat_sql);                   
$cat_result=mysqli_fetch_assoc($cat_query);
?>

<?php do {  ?>

    <p> <a id="<?php echo ($cat_result['catagory']); ?>"</a>         
    echo $cat_result['category']; ?> </p>   

 <?php } while ($cat_result=mysqli_fetch_assoc($cat_query))  ?> 

感谢任何帮助,因为我无法在线找到包含此示例的资源。

1 个答案:

答案 0 :(得分:0)

按如下所示在您的sql中使用联接

SELECT c.* FROM Categories as c
INNER JOIN Members as m on c.id=m.cat_id
ORDER BY c.Category

这假定Categories.id是与Member.cat_id对应的列,INNER JOIN将仅显示两个表中都可用的结果。