2014-01-09 15:02
采纳率: 0%
浏览 39


I'm trying to use an object to count the number of records in my db that meet certain criteria but I can't work out how to make it work. The following code is my count method inside my db connection class:

//Counts the total number of records and returns integer
public function totalCount($fieldname, $tablename, $where = "") 
    $q = "SELECT count(".$fieldname.") FROM "
    . $tablename . " " . $where;

    $result = $this->mysqli->query($q);
    $count = 0;

    if ($result) {
        while ($row = mysqli_fetch_array($result)) {
            $count = $row[0];
    return $count;

This code is outside the class:

 //New instantiation
 $mydb = new myDBC();

 //Count the number of transactions for the user...
 $count = $mydb->totalCount('amount','transactions','WHERE userid = 13');

 //output the number of transactions for the user
 print $count;

For some reason this always displays 0, even though my db has thousands of records inside it that should be counted. Grateful for any pointers as to where my syntax isn't right.


  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

3条回答 默认 最新

  • duanjuda5789 2014-01-09 15:15

    Does this method returns zero for all tables/fields or you tested only

    $mydb->totalCount('amount','transactions','WHERE userid = 13');?

    The count counts only NOT NULL values. To count all records pass asterisk to the count function: count(*)

    解决 无用
    打赏 举报

相关推荐 更多相似问题