gpt4 book ai didi

php - 从两个不同的表获取信息,协助

转载 作者:行者123 更新时间:2023-11-29 12:03:14 28 4
gpt4 key购买 nike

我正在尝试制作一个成员(member)页面。对于排名,它显示数字,因此我制作了另一个具有排名 ID(1、2、3 等)的表,并为其添加了名称。这是我的代码。

<?php 
$getCoB = mysql_query("SELECT * FROM `members`
WHERE `CoB` = '1' && `user_state` = '1' ORDER BY `id`");
$id = ($getCoB['rank']);
$rankInfo = mysql_query("SELECT * FROM `ranks` WHERE `id` = '".$id."'");?>

<h2 class="title">Council of Balance members</h2>
<style>tr:nth-of-type(odd) { background-color:#F0F0F0;}</style>
<div style='padding:5px;'>
<?php
if(mysql_num_rows($getCoB) == 0)
{
echo "There are no Council of Balance members.";
} else {
echo "<table cellpadding=20 width=100%>";
while($row = mysql_fetch_assoc($getCoB))
{
echo "<tr><td style='background-color:transparent;'><b>". $row['name']
. "</b></td><td>Rank: ".$rankInfo['name']." <br/> Role: ". $row['role']."</td>";
}
echo "</table>";
}
?>

问题是rankInfo['name']没有出现。我尝试在这条线上做一些事情 while($row = mysql_fetch_assoc($getCoB))并试图使它像这样 while($row = mysql_fetch_assoc($getCoB)) || while($rank = mysql_fetch_assoc($rankInfo)并更改了这部分<td>Rank: ". $rankInfo['name'] . "对此<td>Rank: ". $rank['name'] . "但我最终遇到了一个错误。如果我保持原样,它只会显示排名:,而不显示我添加到数据库中的名称。

最佳答案

您可以使用内部联接将两个查询合并为一个查询。

<?php
$getCoB = mysql_query("SELECT m.name as member_name, m.role, r.name as rank_name
FROM `members` as m INNER JOIN `ranks` as r ON m.rank = r.id
WHERE `CoB` = '1' && `user_state` = '1' ORDER BY m.id");
?>

由于 INNER JOIN 的工作原理,这只会显示在排名表中具有相应记录的成员。如果您要显示的某些成员没有排名记录,请改用 LEFT JOIN。

然后,当您回显数据时,请确保每次都引用您已提取的项目 ($row)。在您的代码中,您引用的是 $rankInfo['name'],其中 $rankInfo 不是变量,而是一个 mysql 查询,未从中获取任何行。

while($row = mysql_fetch_assoc($getCoB)) {
echo "<tr><td style='background-color:transparent;'><b>". $row['member_name']
. "</b></td><td>Rank: ". $row['rank_name'] . " <br/> Role: " . $row['role'] . "</td>";
}

关于php - 从两个不同的表获取信息,协助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31997094/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com