php - 如何显示来自不同数据库表的多个名称
问题描述
我正在尝试显示连接到同一张表的名称。
有 3 个不同的数据库表:
- 表
- 客人
- 信息
首先,我从“表”中获取数据以获取表 ID。
比我从“信息”表中获取数据来确定哪些客人连接到表 id 所以我得到了他们的 id(可以是多个 id)。
最后,我通过 id 获得每位客人的姓名。
我的问题是我只能得到我期望的最终名称,而不是连接到同一张表的所有名称。
最后一个结果需要显示每个表和连接到表的每个名称。
PHP:
$sql_e1 = "SELECT `tid` FROM `table`";
$result_e1 = $con->query($sql_e1);
if ($result_e1->num_rows > 0) {
$i = 0;
while($row0 = $result_e1->fetch_assoc()) {
$table_id = $row0['tid'];
$array[$i]['table_id'] = $table_id;
$sql_e2 = "SELECT `id` FROM `info` WHERE `tid`='".$table_id."'";
$result_e2 = $con->query($sql_e2);
if ($result_e2->num_rows > 0) {
while($row2 = $result_e2->fetch_assoc()) {
$guest_id = $row2['id'];
$array[$i]['guest_id'] = $guest_id;
$sql_e3 = "SELECT `name` FROM `guests` WHERE `id`='".$guest_id."'";
$result_e3 = $con->query($sql_e3);
if ($result_e3->num_rows > 0) {
while($row3 = $result_e3->fetch_assoc()) {
$array[$i]['name'] = $row3['name'];
}
}
}
}
$i++;
}
}
$counter = 0;
HTML:
<?
if (isset($i)) {
while ($counter < $i) {
include 'infodialog.php';
?>
<div class="<? echo $array[$counter]['table_id']; ?>">
<p><? echo $array[$counter]['name']; ?></p>
</div>
<?
$counter++;
} } ?>
解决方案
如果您想在数组中获取多个名称,您的代码应该是:
$array[$i]['name'][] = $row3['name'];
或者根据客人ID代码应该是
$array[$i][$guest_id]['name'][] = $row3['name'];
这将获得所有名称,但您必须根据数组更改 HTML 代码。
推荐阅读
- excel - 在“另存为”对话框窗口中建议文件名/位置(使用不同的文件类型)
- python - 未创建 SparkContext 对象
- python - 删除 Python 中的空行和注释(不带正则表达式)
- sql - 我需要在一个表的一部分中按规范条件选择行
- r - 如何根据R中分隔符之间的出现替换字符串中的确切字符数
- php - 如何从另一台服务器执行一个可爱的 json?
- c# - 根据条件 C# 比较两个列表
- php - 为什么 $http_response_header 总是为空?
- c++ - 未能通过 shared_ptr
作为 shared_ptr 参考 - javascript - 散景 - 如何创建可隐藏的侧边栏