2015-05-22 3 views
-1

Прежде всего, я новичок PHP Developer.Отфильтровать данные из MySQLi другим способом

Я разрабатываю сайт, на котором есть база данных, содержащая записи сотрудников. Каждый присваивается ID, имя, mobNo, адрес и т.д ..

Там есть панель фильтров на веб-сайте с большим количеством фильтров, чтобы использовать как фильтр, фильтр mobNo ...

То, что я точно хочу, если 1 фильтр выбран, PHP будет обрабатывать только 1 MySQLi Query что-то вроде:

WHERE '$param' LIKE '%$paramValue%' 

Если пользователь выбирает 2 фильтра, скажем, имя и mobNo, PHP должен обрабатывать запросы, по 2 что-то вроде:

WHERE '$param' LIKE '%$paramValue%'AND '$param2' LIKE '%$paramValue2%'; 

Цепочка должна следовать дальше .. Я буду использовать AJAX, но вам не нужно беспокоиться об этом .. Я сам ее интегрирую.

+0

http://stackoverflow.com/questions/767026/how-can-i-properly-use-a-pdo-object-for-a-select-query или http://stackoverflow.com/questions/27422784/multiple-sql-objects-in-php-mysqli – xQbert

ответ

1

Вы должны использовать функцию типа isset() или любым другим способом проверить, что выбрал пользователь, а затем отобразить соответствующий запрос.

т.е.

$query = "SELECT blabla WHERE "; 
$int = 0; //checks if query needs an 'AND' 

    if (isset(filter1)) { 
      $query += "$param1 LIKE $paramValue1"; 
      $int = 1; 
    } 
    if (isset(filter2)) { 
      if ($int = 1) 
      $query += " AND "; 
      $query += "$param2 LIKE $paramValue2"; 
      $int = 1; 
    } 

и так далее. Не совсем уверен, что вам нужно, но, надеюсь, что-то в этом роде. Будьте творческими :)

+0

Bravo ..! Я не мог бы сделать это без твоей помощи .. Как всерьез, салют! –

+0

@OnishGarg Рад, что я могу помочь! – Mirodinho

0
$sql = "WHERE '$param' LIKE '%$paramValue%'"; 
if($param2 != '')$sql .= "AND '$param2' LIKE '%$paramValue2%'"; 
if($param3 != '')$sql .= "AND '$param3' LIKE '%$paramValue3%'"; 
... 

Если вы хотите, чтобы парафинеры были модульными, вам необходимо добавить их в куски в зависимости от того, установлены они или нет.

+1

Делает какую-то логику. Если я сочту эту идею другим ответом Amrito, я уверен, что я заработаю ее. Спасибо! –

Смежные вопросы