$rows = mysql_fetch_assoc(mysql_query("SELECT COUNT(*) FROM x WHERE id='{$variable}' GROUP BY id"));
return $rows;
当我执行print_r($ rows)时,我得到一个如下所示的输出:
Array ( [COUNT(*)] => 2 )
我想要的是'2',所以我试过
print $rows[0];
哪个不起作用。我试过了:
print $rows[COUNT(*)];
哪个也不起作用......
有什么想法吗?
THX。
答案 0 :(得分:4)
您可以使用AS
关键字添加别名。我将名称命名为total
"SELECT COUNT(*) AS total FROM x WHERE id='{$variable}' GROUP BY id"
现在你可以得到它print $rows['total'];
答案 1 :(得分:0)
只需将您的SQL语句修改为:
SELECT COUNT(*) AS total .......
现在您可以使用total
关键字
print $rows['total'];
答案 2 :(得分:0)
您需要COUNT()
的列别名。
$result = mysql_query("SELECT COUNT(*) AS numrows FROM x WHERE id='{$variable}' GROUP BY id"));
if ($result) {
$rows = mysql_fetch_assoc($result);
echo $rows['numrows'];
}
* 关于错误处理和样式的注意事项:* 我已重构您的代码以将结果资源存储在$result
中,而不是直接将其传递给mysql_fetch_assoc()
。如果您的查询因任何原因失败,但您将资源直接传递给fetch调用,则会出现错误。
答案 3 :(得分:0)
请在下面的代码
$rows = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM x WHERE id='{$variable}' GROUP BY id"));
return $rows;
这对你有用。
如果使用mysql_fetch_array
,那么结果集将以2类型作为字段名称,另一个作为数组索引0,1,....等等
这会对你有所帮助
答案 4 :(得分:0)
如果您需要复杂的查询(例如选择文章和评论数量),我会根据手册中的那些行使用AS
作为点击建议:
可以使用AS alias_name为select_expr指定别名。别名是 用作表达式的列名,可以在GROUP BY中使用, ORDER BY或HAVING子句。例如:
SELECT CONCAT(last_name,',',first_name)AS full_name FROM mytable ORDER BY full_name;
但是,您只需要使用一个值mysql_fetch_row()
,它总是返回数值数组:
返回与获取的行对应的数字字符串数组,如果没有其他行,则返回FALSE。
所以你会:
$result = mysql_query("SELECT COUNT(*) AS numrows FROM x WHERE id='{$variable}' GROUP BY id"));
$row = mysql_fetch_row( $result);
print_r( $row); // array( 0 => 2);
echo $row[0]; //2
或者您可以使用mysql_fetch_result()
定义为:
从MySQL结果集中检索一个单元格的内容。
用法只是:
echo mysql_fetch_result( $result, 0, 0); // 2
答案 5 :(得分:0)
function getOne($sql) {
$res = mysql_query($sql) or trigger_error(mysql_error().$sql);
if (!res) return FALSE;
$row = mysql_fetch_row($res);
return $row[0];
}
$count = getOne("SELECT COUNT(*) FROM x WHERE id='{$variable}' GROUP BY id");
虽然要使用此代码,但必须了解用户定义的函数是什么。
答案 6 :(得分:-1)
echo mysql_result(mysql_query("SELECT COUNT(*) FROM x WHERE id='{$variable}' GROUP BY id"), 0, 0);