Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP mysqli执行while循环-显示具有1个或多个关联记录的类别_Php_Mysql_Join - Fatal编程技术网

PHP mysqli执行while循环-显示具有1个或多个关联记录的类别

PHP mysqli执行while循环-显示具有1个或多个关联记录的类别,php,mysql,join,Php,Mysql,Join,我肯定这是一个简单的任务,但由于某些原因,我只是找不到一个资源来帮助我加入我需要为我正在写的网站 我基本上有一个类别表和一个成员表,其中包含一个cat_id,对应于所述类别 我目前有一个do while循环在运行,因此它会显示表中的所有类别,但是,我现在只想显示类别表中的类别,如果Members表中有一条记录具有相应的cat_id。这将有助于我添加新成员时,该类别将自动显示在网站上 我现在的代码是 <?php $

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

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

我目前有一个do while循环在运行,因此它会显示表中的所有类别,但是,我现在只想显示类别表中的类别,如果Members表中有一条记录具有相应的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))  ?> 


非常感谢您的帮助,因为我无法在网上找到包含此示例的资源。

在sql中使用连接,如下所示

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

这假设Categories.id是一个与Members.cat_id相对应的列,内部联接将只显示两个表中可用的结果。

谢谢-这非常有效,我知道这将非常简单。我不得不添加selectdistinct,以便它只显示每个类别一次,但这正是我想要的。再次感谢!!非常感谢