当没有匹配的行时,使用PHP mysql_num_rows()在下面的表中运行下面的查询时返回“1”。mysql_num_rows()不适用于SUM()?
经过测试,我发现问题发生在查询中使用SUM()函数时。如果我从查询中取出SUM(),mysql_num_rows()会返回“0”。
是否有其他的我应该使用,而不是mysql_num_rows()来找出表中是否有匹配的行?
表:
name | students_money | grade
George | 5 | A
Bill | 10 | A
Dan | 7 | A
代码:
$sql = "SELECT SUM(students_money) AS sum_money FROM students_table WHERE name = 'Tom' AND name = 'Jack'";
$result = @mysql_query($sql, $con) or die(mysql_error());
$num_rows = mysql_num_rows($result);
if ($num_rows < 1) {
echo "not everyone has paid";
exit;
}
while($row = mysql_fetch_array($result)) {
$sum_money = $row[sum_money];
$total = $total + $sum_money;
}
我希望能够检查Tom和Jack是否不在表中,同时还使用SUM()函数。这可能吗? – Mark 2010-10-23 23:15:10
如果您想要返回两者的总和,则不能在单个查询中执行此操作。如果您想知道每个名称的总数,可以使用查询@nhnb写道。然后你可以在PHP中执行总和。否则,您需要执行查询以查看他们是否都支付了费用,然后再进行第二次查询以获得总和。 – 2010-10-23 23:22:34