我有3個HTML select
標記用於根據日期從mysql數據庫中搜索數據。使用這3個選擇標籤用戶可以選擇年份,月份和區域名稱(zone_id)。如何根據特定月份從數據庫獲取數據?
後,選擇這3個標籤選項值我創建一個變量根據日期來搜索數據:
$selected_year = isset($_POST['year']) ? (int) $_POST['year'] : date("Y");
$selected_month = isset($_POST['month']) ? (int) $_POST['month'] : date("n");
$selected_zone = isset($_POST['zone']) ? htmlspecialchars($_POST['zone']) : '';
$search_date = date('d'.'-'.$selected_month.'-'.$selected_year);
$search_date = strtotime($search_date);
這$search-date
變量選擇的月份打印用戶爲PHP的strtotime()。例如:1470866400
現在我有一個表client_pay_bill
,並有一個列名conn_date
。這conn_date
列值是存儲各種月份爲php strtotime()
。例如:1467324000或1470866400
現在我想獲得特定月份的價值。例如:
如果用戶選擇的年份和月份生成2016年8月的時間戳,那麼查詢將僅返回2016年8月的數據。我怎樣才能做到這一點 ?
SQL查詢:
$get_client = "SELECT cbp.advance_amount, cbp.bill_month, cbp.due_amount, cbp.pay_amount, c.is_active, c.client_id, c.user_id, c.address, c.contact_no, zone.zone_name, package.package_name, c.monthly_bill, c.bill_date
FROM clients AS c
LEFT JOIN zone ON zone.zone_id = c.zone_id
LEFT JOIN package ON package.package_id = c.package_id
LEFT JOIN clients_pay_bill AS cbp ON cbp.client_id = c.client_id
WHERE c.uid = '$uid' AND c.is_active = 1 AND c.conn_date <= '$search_date' ";
if($selected_zone != "all") {
$get_client .= " AND c.zone_id != '' ";
} elseif($selected_zone == "all") {
$get_client .= " AND c.zone_id != '' ";
} else {
$get_client .= " AND c.zone_id = '$selected_zone' ";
}
$get_client .= " ORDER BY c.client_id DESC ";
$get_client = mysqli_query($conn, $get_client);
更新:
3選擇標籤爲波紋管:
<div class="col-md-3">
<div class="form-group">
<select name="year" id="" class="form-control">
<option value="">--Select Year-- </option>
<?php
for ($y=2013; $y<=2017; $y++) {
if(isset($_POST['year']) && $_POST['year'] == $y) {
$selected = 'selected = "selected"';
} elseif(!isset($_POST['year']) && date('Y') == $y) {
$selected = 'selected = "selected"';
} else {
$selected = '';
}
echo "<option value='$y' $selected>$y</option>";
}
?>
</select>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<select name="month" id="" class="form-control">
<option value="">--Select Month-- </option>
<?php
$months = array('January', 'February','March', 'April', 'May', 'June', 'July ', 'August', 'September', 'October', 'November', 'December');
$mcount = 1;
foreach($months as $month) {
if(isset($_POST['month']) && $_POST['month'] == $mcount) {
$selected = 'selected = "selected" ';
} elseif(!isset($_POST['month']) && date('n') == $mcount) {
$selected = 'selected = "selected" ';
} else {
$selected = '';
}
echo "<option value='$mcount' $selected>$month</option>";
$mcount++;
}
?>
</select>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<select name="zone" id="" class="form-control">
<?php
$query_zone = mysqli_query($conn, "SELECT zone_id, zone_name FROM zone WHERE uid = '$uid' ORDER BY zone_id DESC");
$query_zone_num = mysqli_num_rows($query_zone);
if($query_zone_num == 0) {
echo "<option value=''>No zone added</option>";
} else {
echo "<option value=''>Select Zone</option>";
echo '<option value="all" selected="selected">All Zone</option>';
}
while($result_zone = mysqli_fetch_array($query_zone)) {
$zone_id = (int) $result_zone['zone_id'];
$zone_name = htmlspecialchars($result_zone['zone_name']);
if(isset($_POST['zone']) && $_POST['zone'] == $zone_id) {
$selected = 'selected = "selected" ';
} else {
$selected = '';
}
echo "<option value='$zone_id' $selected>$zone_name</option>";
}
?>
</select>
</div>
你是在UNIX時間戳格式保存日期在你的client_pay_bill表中? –
我正在使用mysql NOW()來插入。 –