2014-10-01 18 views
1

我想做一個動態表,計算某個表中的列,返回此值,然後根據此計數生成一個表。我的代碼如下沒有任何額外的錶行,但我甚至沒有得到這第一個錶行。我想使一個列計數的動態表,但我無法得到列計數出我的SQL查詢

我收到此錯誤信息:

注意:類mysqli_result的對象不能轉換在/Applications/XAMPP/xamppfiles/htdocs/database/public_html/includes/class_lib.php爲int在線26

這裏是我的代碼:

$query = "SELECT COUNT(*) AS Columns 
      FROM INFORMATION_SCHEMA.COLUMNS 
      WHERE table_schema = 'user_info' 
      AND table_name = 'task'"; 
     $colcnt = $mysqli->query($query); 

     $table = "<table><tr>"; 
     $countcolumn = 1; 
     while ($countcolumn <= $colcnt) { 
      $table .= "<td class=table_head>"; 
      $table .= "<a href=?sort=>"; 
      $table .= "test</a></td>"; 
      $countcolumn++; 
     } 
     $table .= "</tr>"; 
     $table .= "</table>"; 
     echo $table; 
+3

'$ mysqli-> query()'返回'mysqli_result'對象,而不是一個整數。 – 2014-10-01 17:33:27

+0

那麼我怎樣才能做出一個整數呢? – 2014-10-01 17:54:58

+0

@SnorroJetje你必須閱讀記錄。或者在沒有計數聚合的情況下進行選擇,並在結果集上讀取'mysqli_num_rows'。 – 2014-10-01 17:59:52

回答

0

我想通了:

$query = "DESCRIBE $tablename"; 
    $result = $this->mysqli->query($query); 
    $colcnt = (count(mysqli_fetch_array($result))/2); 

我必須除以2的原因陣列中的所有信息是雙。

感謝您的所有建議!

+0

這是否按預期工作?你想從'table_name'得到所有的結果,但將結果限制爲1.而你的列數是'count(results)',它將是1,然後你除以2。 – 2014-10-02 06:13:23

+0

它認爲它工作,但它沒有。我有現在可以使用的代碼! $ query =「DESCRIBE $ tablename」; $ result = $ this-> mysqli-> query($ query); $ colcnt =(count(mysqli_fetch_array($ result))/ 2) – 2014-10-02 13:30:15

+0

然後你應該更新你的答案。 – 2014-10-02 14:19:00

0

編輯:對不起,我誤會了你試圖在第一次在這裏做。

肖恩已經給你答案:

// Run the query you have provided 
$result = $mysqli->query($query); 

// Fetch the results as an associative array 
$row = mysqli_fetch_assoc($result); 

// Get the row named Columns 
$colcnt = $row['Columns']; 

http://php.net/manual/en/mysqli-result.fetch-assoc.php

相關問題