按时间筛选数据记录,显示到页面表格

想做一个mysql记账的网页,写入数据库记录和读取数据库记录都写好,写到按月筛选记录的时候难住了!

我想在读取记录页面搞个日期框,按日期筛选数据库记录显示到读取记录页面,数据库里面有个时间戳字段写入的是年月日时间戳,我想让筛选记录的日期框,按月筛时间戳,显示到读取记录页面

读取记录页面是读取的数据库所有记录,显示在表格里,怎么才能有筛选记录的时候只显示筛选记录没有筛选的时候显示所有数据!

求帮忙

该回答引用ChatGPT

可以通过在读取记录页面添加一个日期选择器来实现按月筛选记录。用户选择日期后,将该日期传递给后台 PHP 文件,并在 PHP 文件中使用 SQL 查询语句筛选出符合该日期范围内的记录,并将它们显示在表格中。

以下是一个简单的示例代码:

HTML 页面:



<!DOCTYPE html>
<html>
<head>
    <title>账目查询</title>
</head>
<body>
    <form action="get_records.php" method="post">
        <label for="month">选择月份:</label>
        <input type="month" id="month" name="month">
        <input type="submit" value="查询">
    </form>

    <table>
        <thead>
            <tr>
                <th>日期</th>
                <th>金额</th>
                <th>备注</th>
            </tr>
        </thead>
        <tbody>
            <?php
                // PHP 代码用于从数据库中读取记录并显示在表格中
                // 代码略
            ?>
        </tbody>
    </table>
</body>
</html>


PHP 文件 get_records.php:


<?php
// 连接到数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接是否成功
if ($conn->connect_error) {
    die("连接失败:" . $conn->connect_error);
}

// 获取用户选择的月份
$month = $_POST["month"];

// 使用 SQL 查询语句从数据库中获取符合该月份的记录
$sql = "SELECT * FROM account WHERE MONTH(FROM_UNIXTIME(timestamp)) = MONTH('$month')";
$result = $conn->query($sql);

// 显示记录在表格中
if ($result->num_rows > 0) {
    // 输出每行数据
    while($row = $result->fetch_assoc()) {
        echo "<tr><td>" . $row["timestamp"] . "</td><td>" . $row["amount"] . "</td><td>" . $row["remark"] . "</td></tr>";
    }
} else {
    echo "0 结果";
}

$conn->close();
?>

在上面的示例中,get_records.php 文件获取了用户选择的月份,然后使用 MONTH 函数从数据库中选择符合该月份的记录,并将它们输出到表格中。如果用户没有选择日期,则默认显示所有记录。