我想在输入日期并点击搜索按钮时获得两个日期之间的结果。到目前为止我只进行了一次日期搜索。这是如何显示的。
这是我的 index.php
<form method="post" action="search.php?go" id="searchform">
<input type="text" name="Date" placeholder="Date">
<input type="text" name="Location" placeholder="Location">
<input type="submit" name="submit" value="Search">
</form>
这是我获得搜索结果的地方。 search.php
<?php
/* showing table after searching for date */
if (isset($_POST['submit'])) {
if (isset($_GET['go'])) {
$Date = $_POST['Date'];
$Location = $_POST['Location'];
$query = mysql_query("SELECT ID,Name,Location,Date,Category,LabourSupplier,InTime,OutTime,Day,DayRate,Salary,OTHours,OTrate,OTAmount,Allowance2,TotalSalary,Advance,SalaryToHand FROM attendance WHERE Date LIKE '%" . $Date . "%' AND Location LIKE '%" . $Location . "%' ORDER BY location DESC, LabourSupplier ASC", $connection)
or die("Failed to query database" . mysql_error());
while ($row = mysql_fetch_array($query)) {
print "<tr>";
print "<td >" . $row['ID'] . "</td>";
print "<td >" . $row['Name'] . "</td>";
print "<td >" . $row['Location'] . "</td>";
print "<th >" . $row['Date'] . "</th>";
print "<td >" . $row['Category'] . "</td>";
print "<td >" . $row['LabourSupplier'] . "</td>";
print "<th >" . $row['InTime'] . "</th>";
print "<th >" . $row['OutTime'] . "</th>";
print "<th >" . $row['Day'] . "</th>";
print "<th >" . $row['DayRate'] . "</th>";
print "<th >" . $row['Salary'] . "</th>";
print "<th >" . $row['OTHours'] . "</th>";
print "<th >" . $row['OTrate'] . "</th>";
print "<th >" . $row['OTAmount'] . "</th>";
print "<th >" . $row['Allowance2'] . "</th>";
print "<th >" . $row['TotalSalary'] . "</th>";
print "<th >" . $row['Advance'] . "</th>";
print "<th>" . $row['SalaryToHand'] . "</th>";
print "</tr>";
}
}
}
print "</table>";
?>
答案 0 :(得分:1)
请仔细阅读此答案的结尾
添加另一个日期输入:
<form method="post" action="search.php?go" id="searchform">
<input type="date" name="Date1" placeholder="Date 1">
<input type="date" name="Date2" placeholder="Date 2">
<input type="text" name="Location" placeholder="Location">
<input type="submit" name="submit" value="Search">
</form>
在PHP脚本中添加新的日期输入值:
<?php
/* showing table after searching for date */
if (isset($_POST['submit'])) {
if (isset($_GET['go'])) {
$Date1 = $_POST['Date1'];
$Date2 = $_POST['Date2'];
$Location = $_POST['Location'];
$query = mysqli_query($connection, "SELECT ID,Name,Location,Date,Category,LabourSupplier,InTime,OutTime,Day,DayRate,Salary,OTHours,OTrate,OTAmount,Allowance2,TotalSalary,Advance,SalaryToHand FROM attendance WHERE Date BETWEEN $Date1 AND $Date2 AND Location LIKE '%" . $Location . "%' ORDER BY location DESC, LabourSupplier ASC")
or die("Failed to query database" . mysql_error());
while ($row = mysqli_fetch_array($query)) {
print "<tr>";
print "<td >" . $row['ID'] . "</td>";
print "<td >" . $row['Name'] . "</td>";
print "<td >" . $row['Location'] . "</td>";
print "<th >" . $row['Date'] . "</th>";
print "<td >" . $row['Category'] . "</td>";
print "<td >" . $row['LabourSupplier'] . "</td>";
print "<th >" . $row['InTime'] . "</th>";
print "<th >" . $row['OutTime'] . "</th>";
print "<th >" . $row['Day'] . "</th>";
print "<th >" . $row['DayRate'] . "</th>";
print "<th >" . $row['Salary'] . "</th>";
print "<th >" . $row['OTHours'] . "</th>";
print "<th >" . $row['OTrate'] . "</th>";
print "<th >" . $row['OTAmount'] . "</th>";
print "<th >" . $row['Allowance2'] . "</th>";
print "<th >" . $row['TotalSalary'] . "</th>";
print "<th >" . $row['Advance'] . "</th>";
print "<th>" . $row['SalaryToHand'] . "</th>";
print "</tr>";
}
}
}
print "</table>";
?>
<强> INPORTANT 强>
请尝试使用PHP-PDO而不是常规旧的弃用的MySQL函数。您的脚本容易受到SQL注入攻击,强烈建议您更改它
答案 1 :(得分:0)
使用两个日期,而不是单个日期<input type="text" name="Date" placeholder="Date">
:
<input type="text" name="from_date" placeholder="Date">
<input type="text" name="to_date" placeholder="Date">
并在查询中使用它,如:
WHERE Date BETWEEN $from_date and $to_date
注意:但是你必须记住sql注入问题。
答案 2 :(得分:0)
SELECT * 出席 在什么日期之间(&#39; 2014-02-01&#39; AS DATE)和CAST(&#39; 2014-02-28&#39; AS DATE)之间的日期;
答案 3 :(得分:0)
<input type="text" name="FDate" placeholder="From Date">
<input type="text" name="TDate" placeholder="To Date">
和&#34; search.php&#34;
$query = mysql_query("SELECT ID,Name,Location,Date,Category,...,SalaryToHand FROM attendance WHERE Date BETWEEN '".$_POST["FDate"]."' AND '".$_POST["TDate"]."' AND Location LIKE '%" . $Location . "%' ORDER BY location DESC, Date DESC",$connection)