0

我有一张桌子“rel”

---------------------
|id|refid|cellid|cat|
|1 |1    |1     |1  |
|2 |2    |1     |3  |
|3 |3    |1     |5  |
|4 |3    |5     |2  |
|5 |4    |2     |7  |

我想计算每个单元格具有相同单元格的行数。然后在 HTML 页面中检索这些计数。

我编写了代码来运行 SQL 查询并将结果存储在一个数组中

<?php
// Connect to the database server
$dbcnx = mysql_connect("localhost",USER,PASSWORD);
if (!$dbcnx) {
  echo( "<P>Database Connection Failed</P>" );
  exit();
}
// Select the matrix databse database
  if ( !@mysql_select_db("DATABASE") ) {
    echo( "<P>Not connected to Database</P>" );
    exit();
  }

  $cell_array = array();
  if ($result = mysql_query("SELECT cellid, COUNT(*) FROM rel GROUP BY cellid")) {
    if (mysql_num_rows($result)) {
      while ($row = mysql_fetch_assoc($result)) {
        $array[] = $row;
      }
    }
  }
?>

然后我想使用 require 从另一个页面访问这个 php 脚本,然后恢复任何 cellid 的计数结果,以便我可以将结果放入 HTML 表中。

这是解决这个问题的正确方法吗?如果是,从这个数组中调用值的语法是什么,我见过

echo $cell_array['cellid'];

用于其他答案,但它似乎对我不起作用。

谢谢

4

2 回答 2

1

该列COUNT(*)需要有一个,ALIAS以便您可以从它获取值

SELECT cellid, COUNT(*) totalCount
FROM rel 
GROUP BY cellid

所以在PHP中你可以访问

while ($row = mysql_fetch_assoc($result)) 
{
    echo $row["cellid"];
    echo $row["totalCount"];
}
于 2012-10-18T13:16:14.840 回答
1

您正在将行添加到一个名为“$array”而不是“$cell_array”的新数组中,因此 $cell_array 为空。

给 count(*) 一个 John 提到的别名,然后

改变

$array[] = $row;

$cell_array[$row["cellid"]] = $row['totalcount'];

提取价值使用:

echo $cell_array[x];

其中 x 是您想要计数的单元格。

我还假设您想为“数据库”使用常量,因此请更改

if ( !@mysql_select_db("DATABASE") ) {

if ( !@mysql_select_db(DATABASE) ) {
于 2012-10-18T13:22:40.970 回答