Я создаю информационную панель для статистики, где я хочу отображать график и таблицу с одинаковыми результатами. Для отображения дат и единиц измерения я использую запрос MySQLi и foreach для каждого «периода» времени (1 месяц, 3 месяца, 1 год). Когда вызывается запрос 'date' один раз, это прекрасно отображает все единицы, но когда я использую запрос в другой раз, foreach будет удваивать вывод единиц каждый раз, используя один и тот же запрос 'date'.
Я применил следующий код, чтобы получить даты:
/* GET DATES FROM AVAILABLE IN DB AND FOREACH THEM */
$sql = "SELECT `datetime`
FROM `Subscriptions_raw`
WHERE ".$getStartPlusEnd."
GROUP BY `datetime`";
$result = $mysqli->query($sql);
// initialize $saved here
$result = $mysqli->query($sql);
//$saved = []; - no need of this now
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
$input = $row["datetime"];
$date = strtotime($input);
echo '<th scope="col">'.date('d M', $date).'</th>';
$filterDates[] = $row["datetime"];
}
}
Я применил следующий код, чтобы получить единицы по 1 месяцу в день:
/* GET 1 MONTH NEW */
foreach (($filterDates) as &$sqlDate) {
$sql = "SELECT `datetime`, `period`, `units` , SUM(`Units`) AS 'units'
FROM `Subscriptions_raw`
WHERE NOT `proceedsReason` = 'Rate After One Year'
AND `subscription` = 'New'
AND `datetime` LIKE '%".$sqlDate."%'
AND `period` = '1 Month'
GROUP BY `datetime`";
$result = $mysqli->query($sql);
for ($set = array (); $row = $result->fetch_assoc(); $set[] = $row);
echo "<td class='align-middle'>".$set[0]["units"]."</td>";
}
Пример (рабочий):
[TABLE WITH DATES QUERY]
[UNITS 1 MONTH PER DAY]
[UNITS 3 MONTHS PER DAY]
[UNITS 1 YEAR PER DAY]
Пример (НЕ работает):
[TABLE WITH DATES QUERY]
[UNITS 1 MONTH PER DAY]
[TABLE WITH DATES QUERY]
[UNITS 3 MONTHS PER DAY][UNITS 3 MONTHS PER DAY]
[TABLE WITH DATES QUERY]
[UNITS 1 YEAR PER DAY][UNITS 1 YEAR PER DAY][UNITS 1 YEAR PER DAY]
Пример того, чего я пытаюсь достичь:
[TABLE WITH DATES QUERY]
[UNITS 1 MONTH PER DAY]
[TABLE WITH DATES QUERY]
[UNITS 3 MONTHS PER DAY]
[TABLE WITH DATES QUERY]
[UNITS 1 YEAR PER DAY]