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
Форумы портала PHP.SU :: Версия для печати :: Поиск в MySQL
Форумы портала PHP.SU » » Вопросы новичков » Поиск в MySQL

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

1. Novich - 11 Декабря, 2015 - 06:23:45 - перейти к сообщению
Поиск по базе данным, по двум критерия произвожу таким образом.

PHP:
скопировать код в буфер обмена
  1. $strSQL = "SELECT * FROM tovar WHERE `price` LIKE '%".$from."%' OR `price` LIKE '%".$to."%'  ";

Мне необходимо найти от $from до to.
2. Russer - 11 Декабря, 2015 - 07:01:21 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. $strSQL = "SELECT * FROM tovar WHERE `price` BETWEEN '.$from.' AND '.$to.'";
  3.  
3. Novich - 11 Декабря, 2015 - 07:15:09 - перейти к сообщению
Не работает таким образом.
4. Russer - 11 Декабря, 2015 - 07:33:15 - перейти к сообщению
Каком формат у столбца `price`?
5. Novich - 11 Декабря, 2015 - 07:35:01 - перейти к сообщению
Все-таки работает, благодарю Russer, c ' не работе почему-то. И так же, если задаю такие переменные поиск первоначально не выдает то что без них(переменных) И если указываю только одно значение для поиска, поиск так же не происходит. Как быть в таких случаях?
(Добавление)
varchar
6. Russer - 11 Декабря, 2015 - 08:02:54 - перейти к сообщению
У BETWEEN оба параметра обязательны!
Можно сделать следующим образом:
PHP:
скопировать код в буфер обмена
  1.  
  2. if (!isset($from) || empty($from)){
  3.     $from='(SELECT MIN(price) from `tovar`)';
  4. }  
  5. if (!isset($to) || empty($to)){
  6.     $to='(SELECT MAX(price) from `tovar`)';
  7. }  
  8. $strSQL = "SELECT * FROM tovar WHERE `price` BETWEEN {$from} AND {$to}";
  9.  
7. Novich - 11 Декабря, 2015 - 08:33:26 - перейти к сообщению
Russer от души, работаетУлыбка
(Добавление)
А как добавить поиск по названию, select выдает названия товаров, если их нет n/a. Это же отдельный запрос нужно или можно сразу искать в tovar'e?
(Добавление)
Скорей всего метод post не подходит ведь, если делать листинг страниц, не так ли?
8. Novich - 16 Декабря, 2015 - 13:43:09 - перейти к сообщению
CODE (html):
скопировать код в буфер обмена
  1. <select name="nazvanie" >
  2.    <option value="Tovar1">Tovar1</option>
  3.    <option value="Tovar2">Tovar2</option>
  4.   <option  value="no">-</option>
  5. </select>
  6. <select name="country" >
  7.    <option value="Russia">Russia</option>
  8.    <option value="China">China</option>
  9.   <option  value="United States">United States</option>
  10. </select>
  11. <input type="text" name="from">
  12. <input type="text" name="to">


PHP:
скопировать код в буфер обмена
  1. if(isset($_POST) && $_POST['nazvanie'] !=='no') {
  2. $where= " WHERE `nazvanie` = $_POST['nazvanie']";
  3. }else {
  4. $where = "";
  5. }
  6. $strSQL = "SELECT * FROM tovar $where;

В первом select производится поиск с помощью кода который в php теге. Каким образом можно производить поиск по двум и более select, как в примере выше html и совместно с input'ами?

 

Powered by ExBB FM 1.0 RC1