Использование 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;
}
Я хочу, чтобы проверить, нет ли Тома и Джека в таблице, а также используя функцию SUM(). Это возможно? – Mark
Если вы хотите вернуть сумму для обоих из них, вы не можете сделать это в одном запросе. Если вы хотите узнать общее количество для каждого имени, вы можете использовать запрос @nhnb. Затем вы можете выполнить сумму в PHP. В противном случае вам нужно будет сделать запрос, чтобы узнать, оба ли они заплатили, а затем второй запрос, чтобы получить сумму. –