【问题标题】:Grabbing info from two different tables, assistance从两个不同的表中获取信息,帮助
【发布时间】:2016-03-19 04:31:52
【问题描述】:

我正在尝试制作会员页面。对于排名,它显示数字,所以我制作了另一个具有排名 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) 并将这部分&lt;td&gt;Rank: ". $rankInfo['name'] . " 更改为&lt;td&gt;Rank: ". $rank['name'] . ",但我最终得到了一个错误。如果我保持原样,它只会显示 Rank: 没有我添加到数据库中的名称。

【问题讨论】:

    标签: php mysql


    【解决方案1】:

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

    <?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,但有些事情超出了我的想象。
    • @GrimmRP 不客气。我真的没有针对 PHP 推荐的特定教程站点。每个人的学习方式都不一样。对我来说,最好的方法就是做我想要学习的很多。如果您不确定某事是如何运作的,请查看PHP documentation,如果您有任何疑问,请来这里。在提出新问题之前,请尝试找到与您的问题相似的问题。人们在开始时遇到的大多数问题已经有了很好的问答。如果您阅读的内容不能完全解决您的问题,那么您可能会学到其他有用的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-17
    • 2017-10-08
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多