如何让这个SQL查询工作......?

时间:2014-04-14 18:35:36

标签: php sql mysqli

我正在上课,我决定制作一个排行榜页面。由于我也有管理区域,我需要从页面中的两个表中获取数据。

这两个表格为user_settingsleaderboards。 这是我的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循环和查询下面的一些代码有关。目前我不想从数据库中获取任何数据,我只想成功选择所有数据,这样页面就不会中断。

1 个答案:

答案 0 :(得分:2)

正如@Kai Qing所说,你正在使用UNION。由于我不知道你的桌面结构是什么,我无法保证这就是你所追求的,但是我相信你想要从两个不共享相同结构的表中选择所有,因此你会想做:

if ($results = $db->query("SELECT * FROM user_settings, leaderboards")) {

我希望这会有所帮助。