2016-07-29 98 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

請參閱我對該帖子的修改。上次發佈時我犯了一個錯誤 –

相關問題