PHP和Mysql(提取信息)

时间:2015-08-01 13:16:19

标签: php html mysql select

我正在开发一个我自己构建一个提交到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可以帮助我,我将不胜感激。

2 个答案:

答案 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