繁体   English   中英

PHP查询不起作用

[英]PHP Query Doesn't Work

我有以下代码,它应该从2个表中获得一些结果,我目前正在尝试加载他们的最后一个(时间),用户ID,用户头像。

我正在使用以下代码在页面上显示:

<?php
            $t = 1800;
            $sql = 'SELECT mh_users.id, mh_users.lastactive, mh_users.avatar, mh_users.gang FROM `mh_users` ';
            $sql .= 'LEFT JOIN `mh_users_stats` ON mh_users.id = mh_users_stats.id WHERE mh_users.lastactive > `'.$t.'` ORDER BY `mh_users.lastactive` DESC';
            $res = $db->query($sql) or exit($db->error);
            while($row = $res->fetch_object()) {
                $online_user = new User($row->id);
                echo '<tr>'
                     . '<td><img src="'.$online_user->avatar.'" width="40" height="40" alt="[avatar]" /></td>'
                     . '<td>'.$online_user->formattedname.'</td>'
                     . '<td>'.$gang_name.'</td>'
                     . '</tr>'
                ;
            }
            ?>

看来用这个查询,页面是空白的,$ db-> error不返回任何内容,页面只是白色。

但是,如果我在此查询中执行此操作:

$sql = 'SELECT mh_users.id, mh_users.lastactive, mh_users.avatar, mh_users.gang FROM `mh_users` ';
$sql .= 'LEFT JOIN `mh_users_stats` ON mh_users.id = mh_users_stats.id';

它确实有效,但是,它在最后一个活动时间没有ORDER,如何根据上一个活动时间进行此查询以列出结果(因此访问最新页面的用户将显示在顶部)

抱歉没有问题,但我现在无法解决这个问题:(

非常感谢!

代替

ORDER BY `mh_users.lastactive`

你应该像这样单独使用反引号别名和字段名称

ORDER BY `mh_users`.`lastactive`

或者根本不使用反引号,因为您已经不在查询中的任何地方使用反引号。

正如我们在评论中发现的那样,您忘记在更新语句中添加WHERE条件。 像这样的东西$sql = 'UPDATE mh_users SET lastactive = '.time().' WHERE id='.$_SESSION['uid']; $sql = 'UPDATE mh_users SET lastactive = '.time().' WHERE id='.$_SESSION['uid']; 应该管用。

ORDER BY `mh_users`.`lastactive`

ORDER BY `mh_users.lastactive`

这应该适合你(我只是删除了变量周围的后面的滴答声):

$sql = 'SELECT mh_users.id, mh_users.lastactive, mh_users.avatar, mh_users.gang FROM `mh_users` ';
$sql .= 'LEFT JOIN `mh_users_stats` ON mh_users.id = mh_users_stats.id WHERE mh_users.lastactive > '.$t.' ORDER BY `mh_users.lastactive` DESC';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM