2016-05-13 54 views
-3

我有一個頁面,所有現在正在我唯一的問題是ciunying從DATABSE記錄功能..PDO計數不工作

Class.user.php

Public function data($count) 
{ 
$stmt=$this->db->prepare("SELECT COUNT(*) FROM login"); 
$result=$this->db->prepare($count); 
$result->execute(); 
$number_of_rows=$result->fetchColumn(); 
} 

的index.php

<table> 
    <thead> 
    <tr> 
    <th>2014</th> 
    </tr> 
    </thead> 

    <tbody> 
     <?php 
      $count="SELECT COUNT(*) FROM login"; 
     $crud->data($count); 
     ?> 

的問題在於,其不表示計數..

+1

'SELCT'和'CIUNT'在您的'index.php'中都拼寫錯誤。你的功能是奇怪的,沒有意義 - 爲什麼你準備兩個不同的語句,只執行一個? – ceejayoz

+0

林對不起,它只是一個錯字 – kier

+1

你既不輸出也不返回任何點的計數值。所以,是的,計數將不會顯示。 – deceze

回答

2
  1. 您正在編寫與函數參數相同的查詢,但也在函數本身內部。而你只是真的使用一個。這是無稽之談。專用您的方法返回計數,不要將查詢作爲參數。
  2. prepare在這種情況下,聲明是毫無意義的,因爲您既不重複使用它,也不約束任何值。你可以直接使用query()
  3. 緊鉗:您既不輸出也不返回計數,所以非常期望它不會出現在任何地方。

這裏有一個健全的版本:

public function getCount() { 
    $result = $this->db->query('SELECT COUNT(*) FROM login'); 
    return $result->fetchColumn(); 
} 
<tbody> 
    <tr> 
     <td> 
      <?php echo $crud->getCount(); ?> 
+0

我已經你的代碼和它的工作現在..但我試過我的查詢這樣的選擇計數(user_id)作爲身份證,sum(user_id)爲從登錄 – kier

+0

區域但問題是,它只是回聲ciunt而不是總和。 – kier

+1

@kier嗯,那是因爲你沒有花時間去了解發生了什麼事情。你需要參加一個基本的PDO教程,然後使用你的大腦。你的代碼調用'getColumn'。向它傳遞一個提取兩列的查詢不會使代碼神奇地返回多於一列。 – ceejayoz

-3

我覺得我平時做這樣link

$sql= "SELECT COUNT(*) FROM login"; 
$stmt = $pdo->prepare($sql); 
$stmt->execute(); 
$row =$stmt->fetchObject(); 

然後輸出它,你將不得不ECHO

<table> 
    <tbody> 
     <tr> 
     <td> 
      <?php echo $row['count'];?> 
     </td> 
     </tr> 
    </tbody> 
</table>