如何根据取件日期和返回日期进行搜索?

时间:2019-05-26 20:15:40

标签: php mysql

在购车页面中,我已经将所有数据输入到mysql数据库(购车表)中。因此,我想简化用户查找在取车日期和返回日期可用的汽车。搜索页面返回日期。但是错误是“无法执行”。

这是使用mysql和php。

car.php

</body>
        <table align='center' width='40%' border='0' cellpadding='0' cellspacing='0'>
            <tr>
                <form action="search.php" method="post" enctype="multipart/form-data">
                <td><input type="date" name="Pickup_date" placeholder="Pickup_date" style='height:38px' required /></td>
                <td><input type="date" name="Return_date" placeholder="Return_date" style='height:38px' required    /></td>
                <td><input type="submit" name="submitbook" value="Search" style='background-color: blue; border: none; color: white; padding: 10px 10px; text-align: center; text-decoration: none; display: inline-block; font-size: 14px;'/></td>
    </div>
                </form>
            </table>

 <?php

 $link = mysqli_connect("localhost", "root", "", "online_car_rental");

 // Check connection
 if($link === false){
  die("ERROR: Could not connect. " . mysqli_connect_error());
}


 // Attempt select query execution
 $sql = "SELECT * FROM car";
 if($result = mysqli_query($link, $sql)){
 if(mysqli_num_rows($result) > 0){
 echo "<table>";
echo "<tr>";
    echo "<th>Id</th>";
    echo "<th>Name</th>";
    echo "<th>Price(RM)</th>";
    echo "<th>Colour</th>";
    echo "<th>Mode</th>";
    echo "<th>Image</th>";
    echo "<th>Status</th>";
    echo "<th>Add to Booking</th>";
    echo "</tr>";

 while($row = mysqli_fetch_array($result)){
 echo "<tr>";
    echo "<td>" . $row['car_id'] . "</td>";
    echo "<td>" . $row['car_name'] . "</td>";
    echo "<td>" . $row['car_price'] . "</td>";
    echo "<td>" . $row['car_colour'] . "</td>";
    echo "<td>" . $row['car_mode'] . "</td>";
    echo "<td><img src='" . $row['car_image'] . "' height='100' 
    width='100'></td>";
    echo "<td>" . $row['car_status'] . "</td>";
    echo '<input type="hidden" name="pickup_date" 
  value="'.$pickup_date.'">';
    echo '<input type="hidden" name="return_date" 
  value="'.$return_date.'">';
    echo "<td><button onclick=\"booking_car('" . $row['car_id'] . 
    "')\">Book</button>
    </td>";

  echo "</tr>";
}
    echo "</table>";
    // Free result set
    mysqli_free_result($result);
} else{
    echo "No records matching your query were found.";
}
 } else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
 }

 mysqli_close($link);
?>

 </html>

search.php

 <?php

 $link = mysqli_connect("localhost", "root", "", "online_car_rental");

 if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}

$search=$_GET['s'];
$query="SELECT * FROM car WHERE date BETWEEN 'pickup_date' AND 
 'return_date'";
if($result = mysqli_query($link, $sql)){
if(mysqli_num_rows($result) > 0){
    echo "<table>";
        echo "<tr>";
            echo "<th>Id</th>";
            echo "<th>Name</th>";
            echo "<th>Price(RM)</th>";
            echo "<th>Colour</th>";
            echo "<th>Mode</th>";
            echo "<th>Image</th>";
            echo "<th>Status</th>";
            echo "<th>Add to Booking</th>";

        echo "</tr>";
    while($row = mysqli_fetch_array($result)){
        echo "<tr>";
            echo "<td>" . $row['car_id'] . "</td>";
            echo "<td>" . $row['car_name'] . "</td>";
            echo "<td>" . $row['car_price'] . "</td>";
            echo "<td>" . $row['car_colour'] . "</td>";
            echo "<td>" . $row['car_mode'] . "</td>";
            echo "<td><img src='" . $row['car_image'] . "' height='100' width='100'></td>";
            echo "<td>" . $row['car_status'] . "</td>";
            echo "<td>" . $row['pickup_date'] . "</td>";
            echo "<td>" . $row['return_date'] . "</td>";
            echo "<td><button onclick=\"booking_car('" . $row['car_id'] . 
    "')\">Book</button>

    </td>";

        echo "</tr>";
    }
    echo "</table>";
    // Free result set
    mysqli_free_result($result);
} else{
    echo "No records matching your query were found.";
}
 } else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}

mysqli_close($link);
?>

</html>

我希望输出基于pick_date和return_date。但是输出为“ ERROR:无法执行”。

2 个答案:

答案 0 :(得分:1)

您可以使用此命令进行检查,当您有两个表时,可以使用内部联接查询来获取数据

SELECT columns
FROM table WHERE pickup_date < 'your_pickup_date' AND return_date >= 'your_pickup_date' ORDER
BY  car or date;

答案 1 :(得分:0)

在不了解您的架构的情况下,很难提供详细的解决方案,但是一个合理的查询示例可能如下:

"    
SELECT c.olumns
     , y.ou
     , a.ctually
     , w.ant
  FROM car c
 WHERE pickup_date < :return_date
   AND return_date >= :pickup_date
 ORDER
    BY pickup_date
     , car_id;
"