内部连接表并在php中显示

时间:2015-05-18 07:57:27

标签: php mysqli inner-join

我想从内部联接的更多表中选择数据。

这些是我的表格。

teams (id, team_name)
badges (id, badgename, badgeimage, badgedescription)
teambadges (id, team_id, badge_id)

我想写一个声明,显示团队名称及其拥有的所有徽章。我还想在表中显示它

这是我的陈述。

$sql = mysqli_query($connection, 'SELECT teams.team_name,badges.badgename
FROM teambadges
INNER JOIN teams ON teams.id = teambadges.team_id
INNER JOIN badges ON badges.id = teambadges.badge_id;');

腓:

<table class="table table-condensed table-striped table-bordered table-hover">
            <thead>
                <tr>
                    <th width="5%"><center>No</center></th>
                    <th>team id</th>
                    <th>badge id</th>


                </tr>
            </thead>
            <tbody id="data">
            <?php $no=1; while ($row = mysqli_fetch_array($sql)) { ?>
                <tr>
                    <td align="center"><?php echo $no; ?></td>
                    <td><?php echo $row['team_name']; ?></td>
                    <td><?php echo $row['badgename']; ?></td>

                </tr>
            <?php $no++; } ?>   
            </tbody>
        </table>

这是在php页面内执行但我不断收到此错误:警告:mysqli_fetch_array()期望参数1为mysqli_result,

2 个答案:

答案 0 :(得分:0)

使用 mysqli_query()或die(mysqli_error($ connection)) 得到你的错误 并检查您的查询在mysql上成功运行

答案 1 :(得分:-1)

我认为你的错误就在这里

<td><?php echo $row['teams.name']; ?></td>
<td><?php echo $row['badges.name']; ?></td>

如果您有正确的名称列,请填写。 如果你有同名的表

teams (id, team_name)
badges (id, badgename, badgeimage, badgedescription)
teambadges (id, team_id, badge_id)

你必须这样做:

<td><?php echo $row['team_name']; ?></td>
    <td><?php echo $row['badgename']; ?></td>