Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Lọc tìm kiếm với PHP / MySQL

Giống như tất cả các bài đăng khác, bạn sẽ cần phải thêm tất cả các điều kiện với AND như vậy. Đây là câu trả lời rõ ràng nhất cho đến nay. Hãy nhớ thực sự thoát khỏi các chuỗi của bạn mặc dù sử dụng cách mysqli OOP thay vì mysql cũ. Chỉ là một gợi ý.

Đây là ví dụ về một truy vấn điển hình.

Cách đúng:

SELECT * FROM donar WHERE name='dxenaretionx' AND sex='M';

Cách bạn đang làm

SELECT * FROM donar WHERE name='dxenaretionx' sex='M';

Mã:

function search_donar($_POST) {
    $by_name = $_POST['by_name'];
    $by_sex = $_POST['by_sex'];
    $by_group = $_POST['by_group'];
    $by_level = $_POST['by_level'];

    //Do real escaping here

    $query = "SELECT * FROM donar";
    $conditions = array();

    if(! empty($by_name)) {
      $conditions[] = "name='$by_name'";
    }
    if(! empty($by_sex)) {
      $conditions[] = "sex='$by_sex'";
    }
    if(! empty($by_group)) {
      $conditions[] = "blood_group='$by_group'";
    }
    if(! empty($by_level)) {
      $conditions[] = "e_level='$by_level'";
    }

    $sql = $query;
    if (count($conditions) > 0) {
      $sql .= " WHERE " . implode(' AND ', $conditions);
    }

    $result = mysql_query($sql);

    return $result;
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PDO ::PARAM cho kiểu thập phân?

  2. MySQL 5.6 DATETIME không chấp nhận mili giây / micro giây

  3. Kết hợp chéo giữa nhiều lược đồ trong MySQL. Đặc quyền và hiệu suất

  4. Mối quan hệ nhiều-nhiều trong SQL giữa nhiều bảng

  5. Chèn dữ liệu vào nhiều bảng bằng một biểu mẫu