[英]PHP displaying data from MySQL with JOINS
我使用 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 上显示的所有内容。
如果您希望在数据库中添加最后一个管理员,请使用此查询
$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 子句中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.