Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Filtrowanie wyszukiwania za pomocą PHP/MySQL

Podobnie jak w przypadku wszystkich innych postów, musisz dołączyć wszystkie warunki za pomocą ORAZ w ten sposób. To najczystsza jak dotąd odpowiedź. Pamiętaj, aby naprawdę uciec od swoich ciągów, chociaż użyj mysqli OOP zamiast starego mysql. Tylko sugestia.

Oto przykład typowego zapytania.

Prawidłowy sposób:

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

Sposób w jaki to robisz

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

Kod:

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. Nie można załadować sterownika QMYSQL na PySide2

  2. Jak mogę połączyć dwie tabele MySQL?

  3. Kod błędu Connector/C++ MySQL:2014 , SQLState:HY000 i błąd braku synchronizacji poleceń dlaczego?

  4. Utrata połączenia z MySQL po chwili i brak ponownego połączenia

  5. Dane wyjściowe między dwiema datami mysql