我正在上课,我决定制作一个排行榜页面。由于我也有管理区域,我需要从页面中的两个表中获取数据。
这两个表格为user_settings
和leaderboards
。
这是我的leaderboards.php页面上的代码:
<?php $records = array();
if ($results = $db->query("SELECT * FROM user_settings UNION SELECT * FROM leaderboards")) {
if ($results->num_rows) {
while ($row = $results->fetch_object()) {
$records[] = $row;
}
$results->free();
}
}
?>
<?php foreach ($records as $data) { ?>
...the HTML etc...
<?php } ?>
为了使此查询有效,我需要更改什么。我需要更改foreach循环吗?要么...?到目前为止,我只需要从一个表格中分析数据,因此我不确定如何使其工作。
编辑:
user_settings
表用于管理员设置配置,例如站点名称等。到目前为止,我正在尝试做的是从两个表中选择全部而不打破页面,此时它正在打破。我有一种感觉,它与foreach循环和查询下面的一些代码有关。目前我不想从数据库中获取任何数据,我只想成功选择所有数据,这样页面就不会中断。
答案 0 :(得分:2)
正如@Kai Qing所说,你正在使用UNION
。由于我不知道你的桌面结构是什么,我无法保证这就是你所追求的,但是我相信你想要从两个不共享相同结构的表中选择所有,因此你会想做:
if ($results = $db->query("SELECT * FROM user_settings, leaderboards")) {
我希望这会有所帮助。