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

Funkcja wyszukiwania z wieloma kryteriami - PHP/MySQL

Możesz sprawdzić, czy wpis dla określonego pola jest pusty, jeśli nie, dołącz odpowiednią klauzulę WHERE do zapytania. Coś w formie:

$mysqli = new mysqli(...);
$sql = 'SELECT * FROM table WHERE ';
$where = array();
$values = array();
$types = '';

if (!empty($_POST['name'])) {
    $where[] = 'name = ?';
    $values[] = $_POST['name'];
    $types .= 's';
}

if (!empty($_POST['sex'])) {
    $where[] = 'sex = ?';
    $values[] = $_POST['sex'];
    $types .= 's';
}
...
$sql .= implode(' AND ',$where);
$values = array_unshift($values, $types);

$statement = $mysqli->prepare($sql);
call_user_func_array(array($statement, 'bind_param'), $values);
...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Atak polegający na wstrzyknięciu, który kończy się pomyślnie mysql_query, ale kończy się niepowodzeniem z mysqli_query

  2. Limit rozmiaru VARCHAR MySQL

  3. SELECT WHERE IN (podzapytanie) wolno

  4. Importowanie wielu plików csv do tabel mysql

  5. Długość nazwy tabeli lub nazwy kolumny wpływa na wydajność?