2015-12-29 148 views
0

我想打一個高分表爲我的網站 我使用PHP,我得到了一個PDO設置排行榜PHP SQL

我有2個表

日誌

id  -- the id of incoming log 
user_id -- User ID 

用戶

ID  -- User ID 
username -- Username 
password -- Pass 
email -- email 

我要算多少日誌數user_id進來,並顯示其user_id/username得到了大多數日誌 ,我必須顯示的用戶名,所以必須通過ID的

我用這個來獲取鏈接用戶總數:

// functions.php: 
class stats { 
    function totalUsers($db) { 
     $SQL = $db -> query("SELECT COUNT(*) FROM users"); 
     return $SQL->fetchColumn(0); 
    } 
} 

// index.php 
require_once 'includes/functions.php; 
echo $stats -> totalUsers($db); 
+1

在代碼方面,到目前爲止您嘗試過了什麼? –

+0

我用這個來獲取用戶總數: 的functions.php: '類統計 { \t功能totalUsers($ DB) \t { \t \t $ SQL = $ DB - >查詢(「選擇COUNT(*)FROM'users'「); \t \t return $ SQL-> fetchColumn(0); \t} } >' 的index.php 'require_once「包括/ functions.php的?; <?php echo $ stats - > totalUsers($ db); '' 沒有真正想到一個工作方式來獲得高分,這就是爲什麼im在這裏發佈 – sicario11

+0

'require_once'includes/functions.php;'如果這是你的真實代碼,那麼缺少一個報價。做'require_once'includes/functions.php';' –

回答

0

by子句中的MySQL

$SQL = $db->query("SELECT COUNT(*) FROM logs GROUP BY user_id"); 

使用組,如果你加入的標籤,您可以獲取用戶信息les

$sqlQuery = "SELECT users.id, users.email, COUNT(logs.*) 
       FROM logs 
      LEFT JOIN logs.user_id = users.ID 
      GROUP BY logs.user_id" 

$sqlResults = $db->query($sqlQuery); 
+0

我收到一個錯誤在這,在$ sqlResults變量 ' 解析錯誤:語法錯誤,意外的'$ sqlResults'(T_VARIABLE)在C:\ wamp \ www \ n \ p \ m = panel \ index.php on line 24 ' 我已經將這個直接添加到index.php中的最高分應該是。 – sicario11

+0

是的。這可能是因爲你逐字複製了我的代碼而沒有停下來判斷它是否正確。你有沒有注意到我的第一個陳述中缺少分號?我的答案旨在幫助您瞭解如何解決此問題,而不是爲您編寫源代碼。 – crafter