开发者社区 问答 正文

Mysqli日期早于今天的日期,它将不会显示在页面上

$mysqli = new mysqli("localhost", $username, $password, $database);

$query = "SELECT code , value , type ,expirationdate, notes, startdate FROM tblpromotions"; echo "



"; if ($result = $mysqli->query($query)) {

while ($row = $result->fetch_assoc()) { $field1name = $row["code"]; $field2name = $row["value"]; $field3name = $row["type"]; $field4name = $row["expirationdate"]; $field5name = $row["notes"]; $field6name = $row["startdate"]; 我无法弄清楚如何使其更旧的日期不会显示在页面exp上

expirationdate = 12/1/2019,然后今天是12/8/2019 该表将不会显示在页面上

如果帖子已过期,我不想显示它们?

展开
收起
社区秘书 2019-12-09 16:41:59 544 分享 版权
阿里云 AI 助理回答

要在查询结果中过滤掉已过期的日期记录,您可以在SQL查询语句中直接加入日期比较条件。这样,在从数据库获取数据时就已经排除了过期的记录。以下是修改后的SQL查询示例:

// 假设今天是2019-12-08,您可以使用PHP的date函数来获取当前日期,或者直接写死日期进行测试
$currentDate = date('Y-m-d'); // 或者直接写为 '2019-12-08'

$query = "SELECT code, value, type, expirationdate, notes, startdate 
         FROM tblpromotions 
         WHERE expirationdate >= '$currentDate'"; // 只选择expirationdate大于或等于今天的记录

echo "<table border='1'>
        <tr>
            <th>Code</th>
            <th>Value</th>
            <th>Type</th>
            <th>Expiration Date</th>
            <th>Notes</th>
            <th>Start Date</th>
        </tr>";

if ($result = $mysqli->query($query)) {
    while ($row = $result->fetch_assoc()) {
        echo "<tr>";
        echo "<td>" . $row["code"] . "</td>";
        echo "<td>" . $row["value"] . "</td>";
        echo "<td>" . $row["type"] . "</td>";
        echo "<td>" . $row["expirationdate"] . "</td>";
        echo "<td>" . $row["notes"] . "</td>";
        echo "<td>" . $row["startdate"] . "</td>";
        echo "</tr>";
    }
} else {
    echo "No results found.";
}

echo "</table>";

这段代码首先使用date()函数获取当前日期(格式为'YYYY-MM-DD'),然后在SQL查询中添加了一个WHERE子句,确保只选取那些expirationdate字段值大于或等于当前日期的记录。这样,过期的记录就不会被查询出来,自然也就不会显示在页面上了。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: