【问题标题】:PHP and Mysql (pulling information)PHP和Mysql(拉取信息)
【发布时间】:2015-08-01 13:16:19
【问题描述】:

我正在自己的一个小项目上构建一个提交到 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);
?>

如果有人能帮助我解决这个问题,将不胜感激。

【问题讨论】:

  • 你可能想在你的while中定义你的变量,然后插入到数据库中。查找有关 MySQL 插入的教程,然后准备变量并将它们插入数据库。你真的应该使用面向对象的风格。这是一个很好的教程,包括你的数据库连接:php.net/manual/en/mysqli.quickstart.prepared-statements.php
  • 你解释了背景和你现在拥有的东西。您能澄清一下您要解决的问题吗?

标签: php html mysql select


【解决方案1】:

我相信您是在问如何查询数据库以选择比当前日期早 14 天以上的记录?

select * from `invoices` where datediff(now(),`date`) > 14

【讨论】:

    【解决方案2】:

    您使用$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"); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-18
      相关资源
      最近更新 更多