【问题标题】:get count of fields with a specific value ? :mysql-php [duplicate]获取具有特定值的字段数? :mysql-php [重复]
【发布时间】:2016-07-29 16:31:57
【问题描述】:

我正在尝试从表中获取付款次数(PAID)。

Please Assume This is the table:

| book_no | name | mobile | date1 | date2 | date3 | date4 |.. daten |
|---------|------|--------|-------|-------|-------|-------|-------|
|    1    | Cell |        | PAID  | DUE   | DUE   |       |       |
|    2    | Cell |        | PAID  | PAID  | PAID  |       |       | 
|    3    | Cell |        | DUE   | DUE   | DUE   | DUE   |       |
|    4    | Cell |        | PAID  | PAID  | PAID  |       |       | 
|    5    | Cell |        | DUE   | DUE   | DUE   |       |       |

上表中Count(Paid) = 7

日期列的数量是动态的,因此我认为搜索整个表并获取 PAID 计数更为明智。

这是我设法编写的关于堆栈溢出的参考答案的代码,但我认为它不适合这个

        //what is the search?
        $search = "PAID";
        //get all the columns

    $columnsq ="SELECT
                COLUMN_NAME
                FROM
                information_schema.COLUMNS
                WHERE TABLE_NAME = " .$scheme_name. "
                AND TABLE_SCHEMA = 'gold' ";

            var_dump($columns);
        //put each like clause in an array
        $queryLikes = array();
        while ($column = $columns->fetch_assoc()) {
            $queryLikes[] = $column['COLUMN_NAME'] . " LIKE '%$search%'";
        }

        $query = "SELECT COUNT(*) FROM " .$scheme_name. "  WHERE " . implode(" OR ", $queryLikes);
        //echo $query; //should look like this:
        //SELECT * FROM users WHERE column1 LIKE '%something%' OR column2 LIKE '%something%' OR column3 LIKE '%something%' OR ...
        //so then
        $users=mysqli_query($conn,$query);
        while ($user = $users->fetch_assoc()) {
            //do stuff with $user
                echo $users;
        }

当我尝试执行上述代码时出现此错误

                Notice: Undefined variable: columns in E:\xampp\htdocs\schemeTable11.php on line 391
NULL 
Notice: Undefined variable: columns in E:\xampp\htdocs\schemeTable11.php on line 394

Fatal error: Uncaught Error: Call to a member function fetch_assoc() on null

因此,我正在寻找替代解决方案。 请帮忙

【问题讨论】:

标签: php mysql count field


【解决方案1】:

你真的需要学习如何阅读错误信息:

$columnsq ="SELECT
       ^^----note those two letters

var_dump($columns);
              ^---UNDEFINED
    //put each like clause in an array
    $queryLikes = array();
    while ($column = $columns->fetch_assoc()) {
                          ^--UNDEFINED

你从未执行过你的查询,你从未定义过$columns,而这正是 PHP 想要告诉你的。

【讨论】:

  • 请查看我对帖子的编辑。我上次发错了
猜你喜欢
  • 1970-01-01
  • 2017-08-22
  • 2011-08-11
  • 2019-09-04
  • 2018-05-09
  • 1970-01-01
  • 2017-07-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多