2014-12-04 283 views
0

*免責聲明:如果有一個簡單的解決方案,我很抱歉 - 我已經看了很多其他類似於我的例子,但無法弄清楚如何解決這個問題。PHP MySQL Count查詢問題

我想要統計樣本數據庫中使用相同取貨位置的貨物數量。

連接到數據庫後,我有以下代碼:

$Table="Customer"; 

$custPerLocationCount = sprintf("SELECT COUNT('userName') FROM %s as total WHERE 'pickUpLocationID'='1'", $Table); 

$result = mysqli_query($db, $custPerLocationCount); 

$body .= "<h1>Customers Per Location</h1><table align='center'> 
      <tr> 
       <th>Location Name</th> 
       <th>Number of Customers</th> 
      </tr>"; 

    while ($recordArray = mysqli_fetch_object($result)) 
     { 


      $locationName = "LOCATION1"; 
      $custCount = print_r($result['total']); 

      $body .= "<tr> 
       <td>".$locationName."</td> 
       <td>".$custCount."</td> 
      </tr>"; 
     }; 
     $body .="</table></br></br></br>"; 

請忽略表格式。我在更改代碼時不斷收到不同的錯誤,但還沒有找到如何解決這個問題。

+0

「SELECT COUNT( '用戶名')作爲總FROM ...」 – anhlc 2014-12-04 01:57:52

+1

是 「username」 的和 「pickUpLocationID」 列名?如果是,請刪除引號。 – 2014-12-04 01:59:23

+0

請告訴我們一些錯誤消息。順便說一句,你不能在SQL中引用列名,你應該使用''將列名稱包裝,像「SELECT COUNT(\'userName \')FROM%s'WHERE \ pickUpLocationID \'= '1'」。 – Seeinyou 2014-12-04 02:24:59

回答

2

在MySQL中,你使用`使DB interprent內容作爲列名,所以你必須改變你的查詢,刪除列的報價,你必須別名移動到結束在選擇語句和FROM前:

custPerLocationCount = sprintf("SELECT COUNT(`userName`) as total FROM %s WHERE `pickUpLocationID`='1'", $Table); 
+0

謝謝!我沒有意識到'和'之間有區別。然而,我現在得到了錯誤「致命錯誤:不能使用mysqli_result類型的對象作爲數組」 - 如果我的'$ custCount = print_r($ result ['total'])'不正確,你會如何顯示? @Skatox – codingNovice 2014-12-04 16:33:53

+0

哦,那是因爲'mysqli_query'返回一個mysqli_result對象,所以你不能用它作爲數組。你可以閱讀更多關於它:http://php.net/manual/en/class.mysqli-result.php – Skatox 2014-12-04 22:13:08