Php 如何显示不同数据库表中的多个名称
我试图显示连接到同一个表的名称 有3个不同的数据库表: 桌子 客人 信息 首先,我从表中获取数据以获取表id 然后我从Info表中获取数据,以确定哪些来宾连接到表id,这样我就可以得到他们的id,可以是多个id 最后我通过它的id得到每个客人的名字 我的问题是,我只能得到我期望的最终名称,而不是所有连接到同一个表的名称 最后一个结果需要显示每个表以及连接到该表的每个名称 PHP: HTML:Php 如何显示不同数据库表中的多个名称,php,sql,Php,Sql,我试图显示连接到同一个表的名称 有3个不同的数据库表: 桌子 客人 信息 首先,我从表中获取数据以获取表id 然后我从Info表中获取数据,以确定哪些来宾连接到表id,这样我就可以得到他们的id,可以是多个id 最后我通过它的id得到每个客人的名字 我的问题是,我只能得到我期望的最终名称,而不是所有连接到同一个表的名称 最后一个结果需要显示每个表以及连接到该表的每个名称 PHP: HTML: 如果要在数组中获取多个名称,则代码应为: $array[$i]['name'][] = $row3['n
如果要在数组中获取多个名称,则代码应为:
$array[$i]['name'][] = $row3['name'];
或者根据客人ID代码
$array[$i][$guest_id]['name'][] = $row3['name'];
这将获得所有名称,但您必须根据数组更改HTML代码。除了Rohit Rasela之外的另一个解决方案是使用联接。从长远来看,连接将是一个更好的解决方案,特别是当您开始添加大量数据时,速度非常重要。我已经有一段时间没有使用PHP和MySQL了,我还没有测试过,但我相信它应该可以工作: MySQL:
SELECT
guests.name as GuestName,
table.tid as TableId,
info.id as InfoId
FROM table AS table
JOIN info AS info ON info.tid = table.tid
JOIN guests AS guests ON guests .id = info.[guest_id_column_name]
这将在遍历每个表时为找到的每个匹配返回一行,您将能够遍历并访问每个匹配的GuestName、TableId和InfoId。如果您不关心表ID,可以在选择列表中将其忽略。如果订单重要,您可以按添加订单
HTML循环:
while ($row = $result->fetch_assoc()) {
<div>Guest name: <php echo $row['GuestName']; ?></div>
<div>Table Id: <php echo $row['TableId']; ?></div>
<div>Info Id: <php echo $row['InfoId']; ?></div>
}
您可以在上获得有关联接的更多信息。您应该在SQL中查找联接,这可能是一个好的开始。它只获取1个数组文本而不是名称,我们尝试使用以下方法:尝试foreach循环而不是while来显示名称。您需要使用嵌套的foreach来显示名称。请尝试调试每个循环下的值。
SELECT
guests.name as GuestName,
table.tid as TableId,
info.id as InfoId
FROM table AS table
JOIN info AS info ON info.tid = table.tid
JOIN guests AS guests ON guests .id = info.[guest_id_column_name]
while ($row = $result->fetch_assoc()) {
<div>Guest name: <php echo $row['GuestName']; ?></div>
<div>Table Id: <php echo $row['TableId']; ?></div>
<div>Info Id: <php echo $row['InfoId']; ?></div>
}