2017-07-29 29 views
0

我需要顯示每個用戶在名爲「RE」的表中創建的條目數。 只有非空條目必須由名爲「DD」的列進行計數。 結果必須在表格中顯示。 我已經嘗試那樣做,但無濟於事:顯示每個用戶創建的行數

<?php 
if ($username = 'John Doe') { 
    echo "<table>"; 
    $query = "SELECT user, COUNT(DISTINCT DD) AS number FROM RE GROUP BY user"; 

    $results = mysqli_query($conn, $query); 

    for ($i = 0; $i < count($results); $i++) { 

     foreach ($user[$i] as $field => $value) { 

      if ($field == "number") {$number = $value;} 
     } 
     echo "<tr><td>".$user."</td><td>".$number."</td></tr>"; 
    } 
    echo "</table>"; 
} 

?> 

我缺少什麼?

+3

查詢是否運行?如果是這樣,你當前的輸出是什麼,爲什麼這是錯的? –

+0

查詢運行,並應在一個表中顯示結果。相反,沒有任何反應。 –

+0

你沒有在代碼中的任何地方使用'$ results'。 –

回答

0

關於我的頭頂,計數不同可能不是你想要的,並且除了NULL爲「空條目」之外,你還可以有空字符串。如果是這樣,那麼可能適合對非NULL和非空字符串的條目進行計數。

SELECT 
    user, 
    SUM(CASE WHEN COALESCE(DD, '') <> '' THEN 1 ELSE 0 END) AS number 
FROM RE 
GROUP BY user 
0

正確的方法來計算「非空」的結果是這樣的:

SELECT user, COUNT(DD) AS number 
FROM RE 
GROUP BY user; 

這假定「空」是NULL

+0

我試過你的解決方案,當查詢直接在數據庫上執行時(I使用Altervista)它完美的作品。 當我嘗試從頁面運行它時什麼也沒有顯示。所以,我認爲我犯了一個錯誤,就是我編寫的其他代碼,但找不到它。 –

相關問題