【发布时间】: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
因此,我正在寻找替代解决方案。 请帮忙
【问题讨论】:
-
@Marc 请查看我对帖子的编辑。我上次发错了