我正在开发一个我自己构建一个提交到Mysql数据库的PHP表单的小项目。我现在已经设法将表单连接到数据库,所有这些都在这方面工作。
我现在正在创建一个页面,如果日期字段和今天的日期超过14天,则会显示来自mysql的信息。
我设法创建了一个显示我所有信息的页面,但是我似乎在14天的时间里陷入困境。
这是我到目前为止的代码:
<title>Force 10 - Reminder app</title>
<h2>F10 - Reminder app - all invoice</h2>
<?php
include 'db-connect.php';
$result = mysqli_query($con,"SELECT * FROM invoices");
echo "<table border='0' align='center'>
<tr>
<th>Company Name:</th>
<th>Email:</th>
<th>Address:</th>
<th>Price:</th>
<th>Date:</th>
<th>File:</th>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['companyname'] . "</td>";
echo "<td>" . $row['email'] . "</td>";
echo "<td>" . $row['address'] . "</td>";
echo "<td>" . $row['price'] . "</td>";
echo "<td>" . $row['date'] . "</td>";
echo "<td>" . $row['file'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?>
如果somone可以帮助我,我将不胜感激。
答案 0 :(得分:1)
使用$row['companyname']
的方式不适用于使用mysqli_fetch_array($result)
的情况。这会从每个列的数据库中拉出一个数组,因此第一列将是$row[0]
而不是$row['companyname']
。
如果您想按名称提取列,请改用mysqli_fetch_assoc($result)
,如下所示:
while($row = mysqli_fetch_assoc($result)) {
echo "<tr>";
echo "<td>" . $row['companyname'] . "</td>";
echo "<td>" . $row['email'] . "</td>";
echo "<td>" . $row['address'] . "</td>";
echo "<td>" . $row['price'] . "</td>";
echo "<td>" . $row['date'] . "</td>";
echo "<td>" . $row['file'] . "</td>";
echo "</tr>";
}
您还可以查看使用预处理语句等等,它们的使用方式略有不同,但在SQL查询中使用变量时,它会成为一个更安全的脚本。
如果您只想选择超过14天的发票,则必须修改SELECT
- 查询,添加WHERE
- 条款:
$result = mysqli_query($con,"SELECT * FROM invoices WHERE date < CURRENT_DATE - INTERVAL 14 DAY");
答案 1 :(得分:1)
我相信您在询问如何查询数据库以选择比当前日期早14天以上的记录?
select * from `invoices` where datediff(now(),`date`) > 14