Utilisation de PHP mysql_num_rows() renvoie "1" lors de l'exécution de la requête ci-dessous dans le tableau ci-dessous lorsqu'il n'y a pas de lignes correspondantes présentes. Après le test, j'ai découvert que le problème se produit lorsque j'utilise la fonction SUM() dans la requête. Si je prends SUM() hors de la requête mysql_num_rows() retourne "0" comme il se doit.mysql_num_rows() ne fonctionne pas avec SUM()?
Y at-il autre chose que je devrais utiliser à la place de mysql_num_rows() pour savoir s'il y a une ligne correspondante dans la table?
Tableau:
name | students_money | grade
George | 5 | A
Bill | 10 | A
Dan | 7 | A
code:
$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;
}
Je veux être en mesure de vérifier si Tom And Jack ne sont pas dans la table tout en utilisant la fonction SUM(). Est-ce possible? – Mark
Si vous souhaitez renvoyer la somme pour les deux, vous ne pouvez pas le faire dans une seule requête. Si vous voulez connaître le total de chaque nom, vous pouvez utiliser la requête @nhnb écrite. Vous pouvez ensuite effectuer la somme en PHP. Sinon, vous devrez faire une requête pour voir si les deux ont payé, puis une deuxième requête pour obtenir la somme. –