获取具有特定值的字段数? :mysql-php

get count of fields with a specific value ? :mysql-php

我正在尝试从 table.

中获取付款次数 (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   |       |       |

在上面table Count(Paid) = 7

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

这是我设法在 Stack overflow 上编写参考答案的代码,但我认为它不适合这个

        //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

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

您真的需要学习如何阅读错误消息:

$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 试图告诉您的。