已更新::获得具有特定值的字段数? -mysql-php
问题描述:
我试图从表格中计算支付数量(PAID)。已更新::获得具有特定值的字段数? -mysql-php
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 | | |
在上表计数(付费)= 7
日期列的数量是动态的,所以我认为这是明智的搜索整个表,并获得有偿计数。
这是我设法写堆栈溢出参考答案的代码,但我不认为这是正确的这一
对不起,我贴错代码前面,因为我尝试不同的东西,忘了以ctrl-z在发布之前。
//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' ";
$columns=mysqli_query($conn,$columnsq);
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;
}
这是我现在得到的错误。
bool(false)
Fatal error: Uncaught Error: Call to a member function fetch_assoc() on boolean in E:\xampp\htdocs\schemeTable11.php:394 Stack trace: #0 {main} thrown in E:\xampp\htdocs\schemeTable11.php on line 394
因此我正在寻找替代解决方案。 请帮助
答
你真的需要学习如何阅读的错误消息:
$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是想告诉您。
+0
请参阅我对该帖子的修改。上次发布时我犯了一个错误 –
@Marc请参阅我的编辑的帖子。我在上次发布 –
不同dupe时犯了一个错误,然后:http://stackoverflow.com/questions/5121027/fatal-error-call-to-a-member-function-fetch-assoc-on-a-non-对象 –