Hướng dẫn filter data between two dates in php - lọc dữ liệu giữa hai ngày trong php

Bạn đang gây rối với các tiêu chuẩn MySQL.

  • Điều nắm tay bạn nên lưu trữ các ngày trong các kiểu dữ liệu gốc MySQL ____ ____ 6, ________ 7 hoặc timestamp

  • Bất kỳ giá trị ngày đầu vào nào bạn gửi đến MySQL nên được chuyển đổi thành định dạng yyyy-mm-dd.

Vì vậy, trước tiên bạn cần chuyển đổi ngày đầu vào của mình đúng sang định dạng trên một cái gì đó như bên dưới giả sử ngày đầu vào của bạn cũng ở định dạng ____1010.

$fromdate = $_POST['fromdate']; 
$todate = $_POST['todate'];

$formdate_r = DateTime::createFromFormat('d-m-Y', $fromdate);
$todate_r = DateTime::createFromFormat('d-m-Y', $todate);

// This will have yyyy-mm-dd format
$formdate_sql = $formdate_r->format("Y-m-d"); 
$todate_sql = $todate_r->format("Y-m-d");

Sử dụng

mysql> select str_to_date('08-01-2015','%d-%m-%Y') as date ;
+------------+
| date       |
+------------+
| 2015-01-08 |
+------------+
1 row in set (0.10 sec)
1, bạn có thể chuyển đổi bất kỳ định dạng nào từ đầu vào.

Tiếp theo trong truy vấn của bạn, ngày là Varchar với định dạng

mysql> select str_to_date('08-01-2015','%d-%m-%Y') as date ;
+------------+
| date       |
+------------+
| 2015-01-08 |
+------------+
1 row in set (0.10 sec)
0 và nó không phải là một ngày thực sự, vì vậy bạn cần chuyển đổi thành ngày thực. Chức năng
mysql> select str_to_date('08-01-2015','%d-%m-%Y') as date ;
+------------+
| date       |
+------------+
| 2015-01-08 |
+------------+
1 row in set (0.10 sec)
3 làm điều đó cho bạn như

mysql> select str_to_date('08-01-2015','%d-%m-%Y') as date ;
+------------+
| date       |
+------------+
| 2015-01-08 |
+------------+
1 row in set (0.10 sec)

Vì vậy, truy vấn sẽ là

$data = $database->getRows("SELECT *, 
                    GROUP_CONCAT(coupon) as cou,
                GROUP_CONCAT(coupondate) as coupondt 
                FROM receipt_entry 
                WHERE city_name = :cityname 
                AND str_to_date(bookingdate,'%d-%m-%Y') BETWEEN :fromdate AND :todate 
                GROUP BY book_no,receipt_no order by bookingdate asc
            ",array(':fromdate'=>$formdate_sql,':todate'=>$todate_sql,':cityname'=>$cityname)); 

Được gửi bởi Nurhodelta_17 vào thứ Hai, ngày 25 tháng 1 năm 2021 - 11:47.

Hướng dẫn filter data between two dates in php - lọc dữ liệu giữa hai ngày trong php

Hướng dẫn này sẽ chỉ cho bạn cách chọn hàng MySQL giữa hai ngày được nhập. Hướng dẫn này không bao gồm một thiết kế tốt nhưng sẽ cung cấp cho bạn kiến ​​thức về chủ đề đã nói. Tôi cũng đã bao gồm 2 phương thức MySQLI được định hướng đối tượng và thủ tục trong các bình luận. Vì vậy, hãy thoải mái chuyển đổi giữa họ.

Tạo cơ sở dữ liệu của chúng tôi

Đầu tiên, chúng tôi sẽ tạo một cơ sở dữ liệu chứa dữ liệu của chúng tôi.

  1. Mở phpmyadmin.
  2. Nhấp vào cơ sở dữ liệu, tạo cơ sở dữ liệu và đặt tên nó là "giữa".
  3. Sau khi tạo cơ sở dữ liệu, nhấp vào SQL và dán mã dưới đây. Xem hình ảnh dưới đây để được hướng dẫn chi tiết.

Hướng dẫn filter data between two dates in php - lọc dữ liệu giữa hai ngày trong php

Chèn dữ liệu vào cơ sở dữ liệu của chúng tôi

Bước tiếp theo để chèn một số dữ liệu vào cơ sở dữ liệu của chúng tôi. Điều này sẽ phục vụ như tài liệu tham khảo của chúng tôi khi chúng tôi chọn ngày của chúng tôi.

  1. Nhấp vào cơ sở dữ liệu "giữa" mà chúng tôi đã tạo trước đó.
  2. Nhấp vào SQL và dán mã bên dưới.

  1. ('nurhodelta', '2020-08-22 07:10:00'),

  2. ('lee', '2020-05-22 08:30:00'),

  3. ('nurhodelta', '2020-08-22 13:15:00'),

  4. ('lee', '2020-03-22 14:00:00'),

  5. ('nurhodelta', '2020-05-16 10:30:00'),

  6. ('lee', '2020-08-15 20:00:00');

Tạo kết nối của chúng tôi

Bước tiếp theo là tạo kết nối cơ sở dữ liệu và lưu nó dưới dạng "Conn.Php". Tệp này sẽ đóng vai trò là cầu nối giữa hình thức của chúng tôi và cơ sở dữ liệu của chúng tôi. Để tạo tệp, hãy mở trình chỉnh sửa mã HTML của bạn và dán mã bên dưới sau thẻ.

  1. //MySQLi Procedural

  2. //$conn = mysqli_connect("localhost","root","","between");

  3. //if (!$conn) {

  4. // die("Connection failed: " . mysqli_connect_error());

  5. //}

  6. //MySQLi Object-oriented

  7. $conn = new mysqli("localhost","root","","between");

  8. if ($conn->connect_error) {

  9. die("Connection failed: " . $conn->connect_error);

  10. }

  11. ?>

Tạo biểu mẫu và bảng của chúng tôi

Cuối cùng, chúng tôi tạo bảng đăng nhập, biểu mẫu và bảng kết quả của chúng tôi trên một trang. Để tạo trang, hãy mở trình chỉnh sửa mã HTML của bạn và dán mã bên dưới sau thẻ. Chúng tôi đặt tên trang này là "index.php".

  1. How to Select MySQL Table between Two Dates in PHP

  2. Login Table

  3. include('conn.php');

  4. //MySQLi Procedural

  5. //$query=mysqli_query($conn,"select * from `login`");

  6. //while($row=mysqli_fetch_array($query)){

  7. /* ?>

  8. //}

  9. //MySQLi Object-oriented

  10. $query=$conn->query("select * from `login`");

  11. while($row = $query->fetch_array()) {

  12. ?>

  13. }

  14. ?>

  15. UserIDUsernameLogin Date
    echo $row['logid']; ?> echo $row['username']; ?> echo $row['login_date']; ?>


  • Data Between Selected Dates

  • if (isset($_POST['submit'])){

  • include('conn.php');

  • //MySQLi Procedural

  • //$oquery=mysqli_query($conn,"select * from `login` where login_date between '$from' and '$to'");

  • //while($orow=mysqli_fetch_array($oquery)){

  • /* ?>

  • //}

  • //MySQLi Object-oriented

  • $oquery=$conn->query("select * from `login` where login_date between '$from' and '$to'");

  • while($orow = $oquery->fetch_array()){

  • ?>

  • }

  • }

  • ?>

  • UserIDUsernameLogin Date
    echo $orow['logid']?> echo $orow['username']?> echo $orow['login_date']?>

  • Đó là nó, kiểm tra công việc của bạn nếu nó hoạt động tốt và nếu xảy ra lỗi, vui lòng đọc bước từ đầu hoặc bạn có thể so sánh mã của bạn với mã tôi đã tải lên. Cũng thoải mái bình luận dưới đây cho bất kỳ câu hỏi hoặc phản ứng.

    Vui thích :)

    • 10814 lượt xem

    Làm thế nào tôi có thể nhận được dữ liệu giữa hai ngày trong PHP?

    Cách lấy dữ liệu từ cơ sở dữ liệu giữa hai ngày trong PHP & .....
    Bước 1: Đầu tiên tạo một cơ sở dữ liệu có tên là BetDB, nơi dữ liệu của nhân viên được lưu trữ ..
    Bước 2: Thứ hai là tạo một bảng có tên là Tem Tempdata và chèn dữ liệu nhân viên ..
    Bước3: Tạo tệp kết nối cơ sở dữ liệu và lưu tệp này với tên Cấu hình ..

    Làm thế nào để bạn lọc hoặc tìm hoặc nhận dữ liệu giữa hai ngày trong PHP MySQL?

    Cách lọc hoặc tìm hoặc nhận dữ liệu giữa hai ngày trong PHP MySQL..
    Bước 1: Tạo một bảng có tên người dùng trong cơ sở dữ liệu MySQL của bạn (PHPMyAdmin) để tìm hoặc lấy dữ liệu từ hai ngày: (thêm một số người dùng vào bảng bạn).
    Bước 2: Tạo tệp index.php và dán mã sau:.
    Cảm ơn vì đã đọc....

    Làm thế nào tôi có thể nhận được dữ liệu giữa hai ngày trong MySQL?

    Sử dụng hàm datediff () để lấy số ngày giữa hai ngày trong cơ sở dữ liệu MySQL. to retrieve the number of days between two dates in a MySQL database.

    Làm thế nào để tìm nạp dữ liệu giữa các ngày trong SQL?

    Cú pháp: Chọn * từ bảng_name WHERE DATE_TIME_COLUMN giữa 'beTAON_DATE_TIME' và 'ending_date_time';SELECT * FROM TABLE_NAME WHERE DATE_TIME_COLUMN BETWEEN 'STARTING_DATE_TIME' AND 'ENDING_DATE_TIME';