Php 我需要从附有日期的数据库表中按日期筛选产品。这将添加到下拉菜单中
修改没有乐趣,但我不认为我们离得太远。我可以改进什么Php 我需要从附有日期的数据库表中按日期筛选产品。这将添加到下拉菜单中,php,sql,Php,Sql,修改没有乐趣,但我不认为我们离得太远。我可以改进什么 <div class="dropdown"> <button class="dropbtn">Date</button> <div class="dropdown-content"> <?php $d = strtotime("today"); ?>
<div class="dropdown">
<button class="dropbtn">Date</button>
<div class="dropdown-content">
<?php $d = strtotime("today"); ?>
<a href="?date=lastWeek"><option value="1">Last 7 days</option></a>
<a href="?date=lastMonth"><option value="2">Last 30 days</option></a>
<a href="?date=date"><option value="3">Last 3 months</option></a>
<a href="?date=date"><option value="4">Last 12 months</option></a>
</div>
</div>
if (isset($_GET["date"])) {
$date = ($_GET['date']);
$sql = "SELECT * FROM tblproduct WHERE date created BETWEEN '2017-08-18' AND '$d'" . $date . "'";
} else {
$sql = "SELECT * FROM tblproducts ORDER BY id ASC";
日期
如果(isset($_GET[“date”])){
$date=($_GET['date']);
$sql=“从tblproduct中选择*,其中日期创建在“2017-08-18”和“$d”之间。$date。””;
}否则{
$sql=“按id ASC从TBL产品订单中选择*”;
您需要转义日期参数并引用它,或者使用绑定参数,这样更安全
if (isset($_GET["date"])) {
$date = mysqli_real_escape_string($_GET['date']);
$sql = "SELECT * FROM tblproduct WHERE date = '" . $date . "'";
} else {
$sql = "SELECT * FROM tblproducts ORDER BY id ASC";
}
或者,如果您正在使用PDO:
if (isset($_GET["date"])) {
$sql = "SELECT * FROM tblproduct WHERE date = :date";
$connection->prepare($sql);
$connection->bindParam(':date', $_GET['date']);
} else {
$sql = "SELECT * FROM tblproducts ORDER BY id ASC";
}
您需要转义date参数并引用它,或者使用绑定参数,这样更安全
if (isset($_GET["date"])) {
$date = mysqli_real_escape_string($_GET['date']);
$sql = "SELECT * FROM tblproduct WHERE date = '" . $date . "'";
} else {
$sql = "SELECT * FROM tblproducts ORDER BY id ASC";
}
或者,如果您正在使用PDO:
if (isset($_GET["date"])) {
$sql = "SELECT * FROM tblproduct WHERE date = :date";
$connection->prepare($sql);
$connection->bindParam(':date', $_GET['date']);
} else {
$sql = "SELECT * FROM tblproducts ORDER BY id ASC";
}
您可以向我们展示此操作的完整代码吗?引发错误的位不在您的代码示例中。此外,将GET参数直接注入查询会使您面临SQL注入攻击。请看一下如何避免这种情况:您可以向我们展示此操作的完整代码吗?引发错误的位不在您的代码示例中。此外,将GET参数直接注入查询会使您面临SQL注入攻击。请看一下如何避免这种情况: