1

我有两张桌子...

Table 1 (keywordsTbl)
KeyID               Key_Name
================================
1                   Biology
2                   Entertainment

Table 2 (profileTbl)
Keyword_ID          Key_Name
================================
1(from keywordsTbl) Biology(from keywordsTbl)
2(from keywordsTbl) Entertainment(from keywordsTbl)

我在profileTbl 中的查询是从keywordsTbl 中索引KeyID 并且它工作正常。唯一的问题是我的输出是这样显示的(没有数组)。:

在此处输入图像描述

似乎它只索引第一个 keyID ...即使在行中放置了多个 keyID,结果也只显示 1 个关键字:

在此处输入图像描述

我的查询如下所示:

include 'db.php'; 

   $sql = mysqli_query($con,"SELECT * FROM profileTable, addKeywordTable ORDER BY LaName ASC");


while ($row = mysqli_fetch_array($sql))
{

     $fname = $row['FirName'];
     $lname = $row['LaName'];
     $title = $row['Title'];
     $keys = $row['Keyword_Name'];
     $id = $row['source_ID'];

if(!in_array($title,array('',null)) && !empty($title)):
 $title = '('.$title.')';
 else:
 $title = '';
endif;

使用两个表时显示数组的最简单方法是什么?在这种情况下加入会更好吗?

4

1 回答 1

0

我不是 100% 确定这就是您所要求的,但是如果您想要一个基于联接的结果列表,KeyID您可以执行以下操作:

SELECT p.Laname, p.FiName, GROUP_CONCAT(k.Key_Name)
FROM ProfileTable AS p
JOIN addKeywordTable AS k ON k.KeyID = p.Keyword_ID
GROUP BY p.LaName, p.FiName

如果您想在选择列表中包含更多文件,您需要将它们添加到GROUP BY列表中或在选择列表中对它们使用聚合函数(GROUP_CONCATMAXMIN等)。

于 2013-09-09T17:15:18.980 回答