Я довольно новичок в 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);
Вы пытаетесь суммировать массив строк, который не работает!
Похоже, вы хотите суммировать показы и клики. Таким образом, вы можете использовать следующее:
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>";
}
$impressions_total = array('impressions_total', 'impressions_image', 'impressions_search');
Этот LOC превращает вашу impressionions_total в массив строк, а не в массив целых чисел или чисел.
array_sum
Работает только с массивом чисел.