當沒有匹配的行時,使用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