2016-07-29 86 views
0

我试图从表格中计算支付数量(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 

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

+0

@Marc请参阅我的编辑的帖子。我在上次发布 –

+0

不同dupe时犯了一个错误,然后:http://stackoverflow.com/questions/5121027/fatal-error-call-to-a-member-function-fetch-assoc-on-a-non-对象 –

回答

0

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

$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

请参阅我对该帖子的修改。上次发布时我犯了一个错误 –

相关问题