簡體   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