У меня есть таблица, которая выглядит примерно так:
$table_name = 'transactions';
+---------------------+--------+
| date | amount |
+---------------------+--------+
| 2019-05-01 03:11:34 | 5 |
| 2019-05-01 04:26:26 | 10 |
| 2019-05-01 07:27:34 | 10 |
| 2019-05-01 19:22:47 | 20 |
| 2019-05-02 00:42:10 | 5 |
| 2019-05-02 04:27:31 | 10 |
| 2019-05-02 05:14:03 | 5 |
| 2019-05-02 08:39:24 | 5 |
| 2019-05-03 12:45:29 | 15 |
| 2019-05-03 12:48:23 | 15 |
| 2019-05-03 13:50:14 | 5 |
| 2019-05-03 16:58:08 | 20 |
| 2019-05-04 01:27:28 | 10 |
| 2019-05-04 11:53:15 | 20 |
| 2019-05-04 15:48:51 | 5 |
| 2019-05-04 15:59:48 | 5 |
| 2019-05-05 01:55:40 | 10 |
| 2019-05-05 05:32:53 | 15 |
| 2019-05-05 11:56:56 | 15 |
| 2019-05-05 12:09:26 | 10 |
+---------------------+--------+
Для этого примера в таблице ровно 4 записи в день. Но реальная таблица может иметь больше или меньше в день, конечно.
Мне нужен список всех дней между определенным промежутком времени и суммой суммы, то есть дохода на каждый день.
Пример:
Введите:
$date_begin = '2019-05-02 00:00:00';
$date_end = '2019-05-04 23:59:59';
Для этих параметров скрипт должен вывести следующее:
2019-05-02
25
2019-05-03
55
2019-05-04
40
Во-вторых (не так важно. Пожалуйста, сосредоточьтесь на первом задании):
Было бы полезно отобразить название дня недели каждого дня. Я предполагаю, что я должен был бы использовать библиотеку для этого. Или php изначально может определить название дня прошлых дат?
Итак, это будет выглядеть так:
2019-05-02
Thursday
25
2019-05-03
Friday
55
2019-05-04
Saturday
40
Я действительно сначала попытался решить это для себя и искал примеры. Но каждый найденный мной был либо более сложным, чем мне нужно, либо слишком разным, чтобы я мог принять его должным образом.
Спасибо
EDIT:
Я попробовал одно из предложений в ответах. Но все, что я получаю, это пустая страница. Может кто-нибудь сказать мне, где я не прав?
<?php
$conn = mysqli_connect($dbserver, $dbuser, $dbpw, $dbname) or die("Connection failed: " . mysqli_connect_error());
$conn->query("SET NAMES 'utf8'");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$table_name = 'transactions';
$date_begin = '2019-05-02 00:00:00';
$date_end = '2019-05-05 23:59:59';
$sql = "SELECT DATE(`date`), SUM(`amount`) FROM $table_name WHERE `date` BETWEEN '$date_begin' AND '$date_end' GROUP BY DATE(`date`) ORDER BY `date`";
$rs_result = mysqli_query($conn, $sql);
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Income daily</title>
<meta name="robots" content="noindex, nofollow">
</head>
<body>
<?php
while ($row = mysqli_fetch_assoc($rs_result)) {
echo '
'.$row['date'].'
<br>
'.$row['amount'].'
<br><br>
';
}
?>
</body>
</html>
Пожалуйста, пока не беспокойтесь о безопасности. Я позабочусь об этом потом.