2014-10-01 53 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

相关问题