【问题标题】:PHP displaying data from MySQL with JOINSPHP 使用 JOINS 显示来自 MySQL 的数据
【发布时间】:2018-08-19 19:49:57
【问题描述】:

我使用的是 PHP 5.6,但我遇到了 php 错误,但我没有。

我的 PHP 代码

$GetAllServers  = $db->select("SELECT * FROM panel_servers ORDER BY id ASC");
$GetAllGroups   = $db->select("SELECT * FROM panel_admin_groups ORDER BY id");
$GetAllAdmins   = $db->select("SELECT *, s.name server_name, g.name group_name, a.pid pid
    FROM panel_admins a 
    LEFT JOIN panel_players p ON a.pid = p.id 
    LEFT JOIN panel_admin_groups g ON a.gid = g.id 
    LEFT JOIN panel_countries c ON p.country = c.country_code 
    LEFT JOIN (SELECT `username`, `pid` FROM panel_players_username GROUP BY pid ORDER BY last_used DESC) u ON a.pid = u.pid 
        LEFT JOIN panel_servers s ON a.sid = s.id WHERE (TIMESTAMPDIFF(MINUTE, add_time, now()) < g.usetime OR g.usetime = 0) ORDER BY immunity DESC");

我的 HTML 代码

<?php
$Players = array();
foreach ((array)$GetAllAdmins as $admin)
    if(!in_array($admin['steamid'], $Players))
        array_push($Players, $admin['steamid']);
        $avatars = GetPlayersAvatars($Players);
?>
<?php foreach ((array) $GetAllAdmins as $admin) { 
    if(!empty($admin['steamid'])){?>
        <tr>
            <td class="coutryrow"><img src="<?=WEBSITE;?>/img/flag/<?=$admin['country_name'];?>.png" title="<?=$admin['country_name'];?>" class="flag"></td>
            <td>
                <a target="_blank" href="http://steamcommunity.com/profiles/<?=$admin['steamid'];?>">
                    <img src="<?=$avatars[$admin['steamid']]?>" class="player-avatar">
                    <?=(!empty($admin['player_username'])) ? htmlspecialchars($admin['player_username']) : htmlspecialchars($avatars['username-'.$admin['steamid']]);?>
                </a>
             </td>
             <td class="centerrow"><?=htmlspecialchars($admin['group_name']);?></td>
             <td class="centerrow"><?=htmlspecialchars($admin['server_name']);?></td>
             <td class="centerrow"><?=date(TIMEFORMAT, strtotime($admin['add_time']));?></td>
             <td class="centerrow"><a href="<?=$CurrentURL;?>edit/<?=intval($admin['aid']);?>/" class="btn btn-info btn-mini"><span class="icon"> <i class="icooo-on-edit"></i> </span><?= _("Edit");?></a></td>
         </tr>

         <?php } else {echo "<tr><td>-</td></tr>";} } ?>

我想在 HTML 中显示添加到数据库中的所有管理员的列表,但例如名称在一个表中,而标志在另一个表中。如您所见,使用 JOINS 和我想在 html 上显示的所有内容。

【问题讨论】:

  • 您将 join 与 panel_admin_groups 和 panel_players 一起使用,所以它们可能没有共同之处。告诉我们你想要得到什么,也许可以提供更多代码,或者尝试使用这个查询,先加入 1,然后加入 2,再加入 3,然后告诉你哪里有问题
  • @O.Rares 我想在 HTML 中显示添加到数据库中的所有管理员的列表,但例如名称在一个表中,标志在另一个表中并且带有 JOINS以及我想加入他们的所有内容,然后显示在 html 上,如您所见,我这里有更多代码,但我不能在这里显示,因为它很多,我不知道是否会帮助什么,有什么方法可以在这里发送私人消息吗?
  • 我根据您的描述发布了一个可能的答案。如果您有针对团队的私人聊天,则可以发送私人消息

标签: php html mysql mysqli


【解决方案1】:

如果您想在数据库中添加最后一个管理员,请使用此查询

$GetAllAdmins   = $db->select("SELECT steamid, s.name server_name, g.name group_name, a.pid pid FROM panel_admins a 
                                        LEFT JOIN panel_admin_groups g ON a.gid = g.id 
                                        LEFT JOIN panel_servers s ON a.sid = s.id WHERE (TIMESTAMPDIFF(MINUTE, add_time, now()) < g.usetime OR g.usetime = 0) ORDER BY immunity DESC");

您需要 3 列。如果要添加过滤器,请将其添加到 WHERE 子句中

【讨论】:

  • 注意:未定义索引:steamid
  • @EddieMarks 我添加了 steamid 来选择,但没有将表格放入其中进行搜索,例如 admin.steamid
  • 它没有用,我正在使用 github 的一个项目,如果你能检查它以查看完整的代码,我将不胜感激 (github.com/boomix/BoomPanel)
  • @EddieMarks 你遇到了什么错误?貌似你没有改github上的代码,可能你的表不一样
  • 你的数据库中有记录吗?
猜你喜欢
  • 1970-01-01
  • 2016-06-10
  • 2017-07-15
  • 2015-07-06
  • 1970-01-01
  • 2014-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多