数组的输出值


Output value from array

$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(*)];

这也不起作用...

有什么想法吗?

感谢。

您可以使用

AS关键字添加别名。我给这个名字起的名字是total

"SELECT COUNT(*) AS total FROM x WHERE id='{$variable}' GROUP BY id"

现在你可以得到它print $rows['total'];

只需将 SQL 语句修改为:

SELECT COUNT(*) AS total .......

现在您可以使用total关键字访问它:

print $rows['total'];
您需要

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()。 如果查询因任何原因失败,但您将资源直接传递给提取调用,则会收到错误。

请在下面的代码下

$rows = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM x WHERE id='{$variable}' GROUP BY id"));
    return $rows;

这将为您工作。

如果使用mysql_fetch_array则结果集分为 2 种类型,一种作为字段名称,另一种作为数组索引 0,1,....等等

这将帮助你

如果您需要复杂的查询(例如,选择文章和评论数(,我会根据手册中的这些行使用Click建议的AS

可以使用 AS alias_name为select_expr指定别名。别名是 用作表达式的列名,可在 GROUP BY 中使用, 排序依据或包含子句。例如:

从我的表中选择 CONCAT(last_name,'、',first_name( 作为full_name 按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
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");

尽管要使用此代码,必须了解用户定义的函数是什么。

echo mysql_result(mysql_query("SELECT COUNT(*) FROM x WHERE id='{$variable}' GROUP BY id"), 0, 0);