массив_сум из sql

Я довольно новичок в php, поэтому я ищу немного направления. Я запрос SQL Server, и мне нужно сделать сумму по некоторым столбцам. Если я использую массив 1,2,3, это работает, но я не могу получить значения для impressionions_total.

$sql = "SELECT * FROM dash_g_adwords_csv";
$stmt = sqlsrv_query($conn, $sql);
if( $stmt === false) {
die( print_r( sqlsrv_errors(), true) );
}

//while($row = sqlsrv_fetch_rows($stmt)){
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_BOTH) ) {
//print_r($row);
$impressions_total = array('impressions_total', 'impressions_image', 'impressions_search');
//$impressions_total = array(1, 2, 3);
//$click_total = array('$click_text', '$click_image', '$click_search');

echo
"<tr><td>" . $row['brand'] .
"</td><td>" . $row['period'] .
"</td><td>" . array_sum($impressions_total) .
"</td><td>" . array_sum['$click_total'] .
"</td></tr>";
}
sqlsrv_free_stmt( $stmt);

0

Решение

Вы пытаетесь суммировать массив строк, который не работает!

Похоже, вы хотите суммировать показы и клики. Таким образом, вы можете использовать следующее:

while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_BOTH)) {
$impressions_total = [$row['impressions_total'], $row['impressions_image'], $row['impressions_search']];
$click_total = [$row['click_text'], $row['click_image'], $row['click_search']];

echo
"<tr><td>" . $row['brand'] .
"</td><td>" . $row['period'] .
"</td><td>" . array_sum($impressions_total) .
"</td><td>" . array_sum($click_total) .
"</td></tr>";
}
1

Другие решения

 $impressions_total = array('impressions_total', 'impressions_image', 'impressions_search');

Этот LOC превращает вашу impressionions_total в массив строк, а не в массив целых чисел или чисел.

array_sum

Работает только с массивом чисел.

1