Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Выборки из базы данных

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Kelly
Отправлено: 10 Сентября, 2011 - 02:10:51
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Сент. 2011  


Помог: 0 раз(а)




Добрый день. У меня возникла сложность с такой вещью как "фильтр" как допустим в интернет магазинах. Подскажите примеры реализации если не сложно. Через поиск найти сам не могу потому-что не знаю как это на самом деле называется. Буду благодарен за любую помощь
 
 Top
LIME
Отправлено: 10 Сентября, 2011 - 09:55:23
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




да очень просто делается
при выборе допустим чекбокса цвет "красный"
в строку запроса добавляем к "WHERE" еще одно условие допустим "AND `color`='red'"
 
 Top
Kelly
Отправлено: 11 Сентября, 2011 - 12:12:32
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Сент. 2011  


Помог: 0 раз(а)




Насколько я понял в WHERE проверяем IFом существование допустим той же переменной color и если она есть то добавляем ее в условие ?
 
 Top
Slavenin
Отправлено: 12 Сентября, 2011 - 00:00:59
Post Id



Посетитель


Покинул форум
Сообщений всего: 285
Дата рег-ции: Май 2010  
Откуда: Тверь


Помог: 4 раз(а)




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

CODE (javascript):
скопировать код в буфер обмена
  1. function mas_filtr()
  2.   {
  3.     pkd = document.getElementById('i_pkgd').value;
  4.     sts = document.getElementById('i_status').value;
  5.     num = document.getElementById('i_number').value;
  6.     cont = document.getElementById('i_cont').value;
  7.     drv = document.getElementById('i_driver').value;
  8.     date = document.getElementById('i_date_waiting').value;
  9.    
  10.     param = '';
  11.     (pkd == 'all') ? param += ' pkgd like \'%%\'' : param += ' pkgd = \'' + pkd + '\'';
  12.     (sts == 'all') ? param += ', status like \'%%\'' : param += ', status = \'' + sts + '\'';
  13.     (num == 'all') ? param += ', num_car like \'%%\'' : param +=  ', num_car = \'' + num + '\'';
  14.     (cont == 'all') ? param += ', num_container like \'%%\'' : param += ', num_container = \'' + cont + '\'';
  15.     (drv == 'all') ? param += ', driver like \'%%\'' : param += ', driver = \'' +  drv + '\'';
  16.     (date == 'all') ? param += ', date_waiting like \'%%\'' : param += ', date_waiting like \'' +  date + '%\'';
  17.    
  18.     sendAnsServ('search.php?filtr=' + param, '3');//функция ajax
  19.   }

затем на строне сервера все это собирлось в
PHP:
скопировать код в буфер обмена
  1.  function filtrSearch($param)
  2.   {
  3.     $sql = "SELECT a.ID, c.name as stat, num_car, num_container, driver, date_waiting, a.date_chek, b.name as name FROM t_voyage as a
  4.         LEFT JOIN t_pkgd as b
  5.         ON a.pkgd = b.ID
  6.         LEFT JOIN t_status as c
  7.         ON a.status = c.ID ";
  8.     $param = explode(",", $param);
  9.    
  10.     if(count($param) == 1)
  11.     {
  12.       $sql .= " WHERE " .$param[0];
  13.     }
  14.    
  15.     if(count($param) > 1)
  16.     {
  17.       $i = 0;
  18.       while($param[$i])
  19.       {
  20.         if($i == 0)
  21.         {
  22.           $sql .= " WHERE " .$param[0];
  23.         }
  24.         else
  25.         {
  26.           $sql .= " AND " .$param[$i];
  27.         }  
  28.         $i++;
  29.       }
  30.     }
  31.    
  32.     $sql .= " GROUP by date_waiting DESC";
  33. //дальше запрос отправлялся в базу и разбирался
  34. }
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB