49 votes

Obtenir la somme d'une colonne MySQL en PHP

J'ai une colonne dans un tableau que je voudrais additionner et renvoyer la somme. J'ai une boucle, mais elle ne fonctionne pas.

while ($row = mysql_fetch_assoc($result)){
    $sum += $row['Value'];
}

echo $sum;

132voto

Flinsch Points 2837

Vous pouvez le gérer complètement dans la requête MySQL :

SELECT SUM(column_name) FROM table_name;

Utilisation de PDO ( mysql_query est déprécié)

$stmt = $handler->prepare('SELECT SUM(value) AS value_sum FROM codes');
$stmt->execute();

$row = $stmt->fetch(PDO::FETCH_ASSOC);
$sum = $row['value_sum'];

Ou en utilisant mysqli :

$result = mysqli_query($conn, 'SELECT SUM(value) AS value_sum FROM codes'); 
$row = mysqli_fetch_assoc($result); 
$sum = $row['value_sum'];

14voto

Alex Points 143
$query = "SELECT * FROM tableName";
$query_run = mysql_query($query);

$qty= 0;
while ($num = mysql_fetch_assoc ($query_run)) {
    $qty += $num['ColumnName'];
}
echo $qty;

5voto

user3314173 Points 59

Essayez ça :

$sql = mysql_query("SELECT SUM(Value) as total FROM Codes");
$row = mysql_fetch_array($sql);
$sum = $row['total'];

3voto

Mike Q Points 461

MySQL 5.6 (LAMP) . column_value est la colonne que vous voulez additionner. table_name est la table.

Méthode n° 1

$qry = "SELECT column_value AS count
        FROM table_name ";

$res = $db->query($qry);

$total = 0;
while ($rec = $db->fetchAssoc($res)) {
    $total += $rec['count'];
}
echo "Total: " . $total . "\n";

Méthode n° 2

$qry = "SELECT SUM(column_value) AS count 
        FROM table_name ";

$res = $db->query($qry);

$total = 0;
$rec = $db->fetchAssoc($res);
$total = $rec['count'];

echo "Total: " . $total . "\n";

Méthode n°3 -SQLi

$qry = "SELECT SUM(column_value) AS count 
        FROM table_name ";

$res = $conn->query($sql);

$total = 0;
$rec = row = $res->fetch_assoc();
$total = $rec['count'];

echo "Total: " . $total . "\n";

Méthode n° 4 : Amortissement (à ne pas utiliser)

$res = mysql_query('SELECT SUM(column_value) AS count FROM table_name'); 
$row = mysql_fetch_assoc($res); 
$sum = $row['count'];

2voto

Rocket Hazmat Points 87407

$row['Value'] est probablement une chaîne de caractères. Essayez d'utiliser intval($row['Value']) .

Aussi, assurez-vous de mettre $sum = 0 avant la boucle.

Ou, mieux encore, ajoutez SUM(Value) AS Val_Sum à votre requête SQL.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X