Я искал и искал и не могу найти никого с подобной проблемой.
У меня есть цикл do ... while с кодом для переноса значений из каждой записи в четыре разных массива. Все выглядит хорошо, за исключением того, что массивы пусты (дает мне предупреждение: деление на ноль).
Я могу отобразить четыре значения для каждой записи, а также метку времени Unix для каждой даты заказа в цикле, поэтому значения верны для каждой записи, но массивы пусты. Я попытался закомментировать условный оператор вокруг блока кода array [] в цикле, но без разницы.
Также попробовал вместо этого array_push; опять нет разницы.
Я новичок, и я не могу понять, почему массивы не заполняются.
Это код вне цикла:
// set timezone and $one_year and $year_limit variables (used in the do-while loop)
ini_set('date.timezone', 'America/Los_Angeles');
$one_year = 60 * 60 * 24 * 365;
$year_limit = strtotime("-1 year");
// create the empty arrays for each rating
$total_vals = array();
$food_vals = array();
$service_vals = array();
$atmo_vals = array();
// get the average for each rating
$total_avg = round((array_sum($total_vals)) / (count($total_vals)));
$food_avg = round((array_sum($food_vals)) / (count($food_vals)));
$service_avg = round((array_sum($service_vals)) / (count($service_vals)));
$atmo_avg = round((array_sum($atmo_vals)) / (count($atmo_vals)));
Это цикл:
<?php do { ?>
<?php
// create unix timestamp from order_date
$pub_date = strtotime($row_getReviews['order_date']);
// add rate values from each record to the arrays if less than 1 year old
if($pub_date - $one_year < $year_limit) { // tried commenting the condition out
$total_vals[] = $row_getReviews['total_rate'];
$food_vals[] = $row_getReviews['food_rate'];
$service_vals[] = $row_getReviews['service_rate'];
$atmo_vals[] = $row_getReviews['atmo_rate'];
}
?>
<!-- html, css, etc here to display text and more -->
<?php } while ($row_getReviews = mysql_fetch_assoc($getReviews)); ?>
Любая помощь очень ценится!