Php mysql\u num\u行始终返回1
结果总是1:Php mysql\u num\u行始终返回1,php,mysql,mysql-num-rows,Php,Mysql,Mysql Num Rows,结果总是1: $sql = 'SELECT COUNT(Vote) FROM ' . $table; $res = mysql_query($sql, $conn); $vote_total = mysql_num_rows($res); 我在phpMyAdmin中运行了$sql查询,它返回3,因此查询不是问题所在$投票总数全局初始化为0,因此1来自某个地方。我还需要提供哪些其他信息来帮助我 谢谢, Ryan返回选定行的数量,而不是特定行的字段。用于获取您在查询中选择的行: $sql = 'S
$sql = 'SELECT COUNT(Vote) FROM ' . $table;
$res = mysql_query($sql, $conn);
$vote_total = mysql_num_rows($res);
我在phpMyAdmin中运行了$sql查询,它返回3,因此查询不是问题所在$投票总数全局初始化为0,因此1来自某个地方。我还需要提供哪些其他信息来帮助我
谢谢,
Ryan返回选定行的数量,而不是特定行的字段。用于获取您在查询中选择的行:
$sql = 'SELECT COUNT(Vote) FROM ' . $table;
$res = mysql_query($sql, $conn);
$row = mysql_fetch_row($res);
$vote_total = $row[0];
您还可以使用获取行并获取特定字段:
$vote_total = mysql_result($res, 0, 0);
这将获取第一行(从零开始)并返回第一个字段(从零开始)。将只有一行。在那一排将是计票
$sql = 'SELECT COUNT(Vote) FROM ' . $table;
$res = mysql_query($sql, $conn);
$vote_array = mysql_fetch_array($res);
$vote_total = $vote_array[0];
如果要使用
mysql\u num\u rows
计算投票数,则必须选择所有行。棘手的部分是,即使sql查询包含count()语句,它仍然是一个与其他任何查询结果一样的查询结果。MySQL将返回一行,其中包含一列,如果您发出reglar查询,则返回的行数为该行的行数。另一方面,mysql_num_rows()只计算实际执行的查询结果中的行数。在这种情况下,它始终是一行
你想要的是:
$sql = 'SELECT COUNT(Vote) FROM ' . $table;
$res = mysql_query($sql, $conn);
$data = mysql_fetch_row($res);
$vote_total = $data[0];
该查询只返回一行。您需要的是从查询中检索值:
$row = mysql_fetch_array($res);
$vote_total = $row[0];
在这种情况下,我需要做的就是计算表中有多少行。因此,我可以使用mysql\u num\u行。但是“投票”列包含三个值中的一个:A、B或C。如果我现在想计算A、B或C出现的次数,我也会使用num_行,对吗?只有当我需要数据时才能提取行,对吗?谢谢,Ryan。事实上,我想不会,因为mysql_num_行不起作用。您是说表示行数的值存储在一个字段中,这就是为什么我需要使用mysql_fetch_row或_array获取该字段的原因吗?@Ryan s:您需要使用另一个查询:
SELECT Vote,COUNT(Vote)FROM table GROUP BY Vote
。这将返回三行(每个投票值一行)和两个字段(投票和具有该值的行数)。