2017-07-05 3 views
1

私はidとvalueの両方の2つのフィールドを持つデータベーステーブルを持っており、値の2つのエントリを一緒に追加して合計をエコーアウトしたいと思います。PHPで値を追加する

これまでのところ、次のようにして両方のエントリを値として表示できました。

function showTotal() { 

global $connection; 
$query = "SELECT * FROM table"; 
$result = mysqli_query($connection, $query); 

if (!$result) { 

die('Query FAILED' . mysqli_error()); 


} else if (isset($failed)) { 

echo "Failed"; 

} 

while ($row = mysqli_fetch_assoc($result)) { 

$value = $row['value']; 

echo "$value"; 

      } 
       } 

私が本当に望むのは、お互いに並べて表示するのではなく、これらの値を一緒に追加することです。あなたはそのような値を合計可能性がPHPを使用して

おかげ ジェームズ

+2

クエリで値を集計するか、PHPで行います。両方で簡単に実行できます。 –

答えて

3

私はそれをテストしていませんが、このようなものは、潜在的にワンライナーである可能性があります。

あなたはすべての結果を必要としない場合、これは良いオプションである、と述べた
echo array_sum(array_column(mysqli_fetch_all($result, MYSQLI_ASSOC), 'value')); 

$result = mysqli_query('SELECT SUM(value) AS mysum FROM table'); 
echo mysqli_fetch_array($result, MYSQLI_ASSOC)['mysum']; 
+1

私はあなたの最初の提案を試みましたが、計算は値の最初のエントリを無視しているようで、2つの値1,10から合計10を与えます。 – cinameng

+1

私を無視する、構文エラー、あなたの提案が動作します。ありがとう – cinameng

1

は:

$value = 0; 
while ($row = mysqli_fetch_assoc($result)) { 

    $value += $row['value']; 

} 

echo $value; 
+0

私はこれを試しましたが、1,10という2つの値から111の結果が得られます。私は何が間違っているのか分かりません! – cinameng

1

私は個人的に@jmが提供するソリューションで行くことを選ぶだろうが、PHPが提供を行いますそのarray_sumと別の方法()、次のように:

<?php 

$value = 0; 

while ($row[] = mysqli_fetch_assoc($result)) {} 

echo array_sum($row['value']); 

はありませんManual

を参照してください。 te:mysqli_fetch_allを使用して結果をフェッチすることができます。 hereを参照してください。