Mysql
 sql >> база данни >  >> RDS >> Mysql

Филтриране на търсене с PHP/MySQL

Подобно на всички останали публикации, ще трябва да добавите всички условия с И така. Това е най-чистият отговор досега. Не забравяйте да избягвате истинските си низове, въпреки че използвайте начина на mysqli OOP вместо стария mysql. Само предложение.

Ето пример за типична заявка.

Правилният начин:

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

Начинът, по който го правите

SELECT * FROM donar WHERE name='dxenaretionx' sex='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. Извличане на данни от MySQL база данни в html падащ списък

  2. #1136 - Броят на колоните не съвпада с броя на стойностите?

  3. Вмъкването на стойност NOW() в тип данни за дата и час връща 0000-00-00 00:00:00

  4. Защо може да има само една колона TIMESTAMP с CURRENT_TIMESTAMP в клаузата DEFAULT?

  5. PHP формулярът не качва файл