我有一张桌子“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 |
我想计算每个cellid具有相同cellid的行数。然后在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'];
用于其他答案,但它似乎对我不起作用。
由于
答案 0 :(得分: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"];
}
答案 1 :(得分:1)
您要将行添加到名为“$ array”而不是“$ cell_array”的新数组中,因此$ cell_array为空。
给予计数(*)John所提及的别名,然后
更改
$array[] = $row;
到
$cell_array[$row["cellid"]] = $row['totalcount'];
拉出一个值使用:
echo $cell_array[x];
其中x是您想要计数的cellid。
我还假设你想为“数据库”使用常量,所以改变
if ( !@mysql_select_db("DATABASE") ) {
到
if ( !@mysql_select_db(DATABASE) ) {