![](/img/trans.png)
[英]How to filter Date Month And Year in php from a timestamp field from database
[英]How to search/filter by month or year from database
我想使用下拉搜索按鈕根據月份或年份過濾報告。 我有問題,因為無法顯示正在搜索的月份數據。
這是我嘗試過的一些代碼:
if(!empty($_POST['search'])){
$sql = "SELECT * FROM complain
WHERE MONTH(timeComplain)='".$_POST['search']."'";
$query = $conn -> query($sql);
$row = $query -> fetch_assoc();
}
<form action="report.php" method="post">
<div class="w3-left">
<select name="search" class="w3-select" value="">
<option value=""></option>
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<input type="submit" id="search" value="Filter">
</div>
</form>
您忘記了執行查詢。
請改用PDO
。
您的PHP代碼應如下所示:
if(!empty($_POST['search'])){
$sql = "SELECT * FROM complain WHERE MONTH(timeComplain)= :month";
$query = $conn->prepare($sql);
$params = array(':month' => $_POST['search']);
$query->execute($params);
$row = $query->fetch();
// then you can do "echo $row['']"
}
您應該在收到任何結果之前執行查詢。
您的$conn
應該如下所示:
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
try { $conn = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8",
$username, $password, $options); }
catch(PDOException $ex){ die("Failed to connect to the database: " . $ex->getMessage());}
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.