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]   

> Без описания
kalumb
Отправлено: 20 Октября, 2012 - 13:51:59
Post Id


Новичок


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


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




Здравствуйте!
У меня не получается сделать запрос в БД. Уже перечитал много мануалов, но так и не сделал.
Вот код:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. $result = mysql_query("SELECT text,date,id,tip,title FROM data WHERE tip='$tip' AND cat='$cat' AND raen='$raen' AND kom='$kom' AND level='$level'",$db);
  3. $myrow = mysql_fetch_array($result);
  4.  

Вот в чём проблема:
Это у меня сортировка объявлений. Человек указывает в выдающимся списке Тип, Категорию, Район, Комнаты, Этаж. Все переменные летят постом в обработчик.
То есть если человек указал 1-у комнату и 5-ый этаж, то должны вывестись все объявления в который 1 комната И первый этаж.
А проблема в том, что если человек не указал например район, то выборка вся обнуляется.
Вот я и не знаю как сделать так, чтобы пустые значения в запросе пропускались. Огорчение
 
 Top
Alho
Отправлено: 20 Октября, 2012 - 13:56:38
Post Id



Посетитель


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


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




Как правило запрос формируется по частям. Т.е. сначала проверяем, пришел ли tip? Пришел, добавляем "tip='$tip'". Потом проверяем пришел ли cat, и т.д.
 
 Top
kalumb
Отправлено: 20 Октября, 2012 - 20:47:59
Post Id


Новичок


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


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




Alho
То есть получится несколько запросов на выборку?
 
 Top
dubasua
Отправлено: 20 Октября, 2012 - 21:30:56
Post Id



Посетитель


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


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




А что там все в VARCHAR?
(Добавление)
И не нужно несколькими запросами, можно сделать примерно вот так
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $where = "tip = '$tip'";
  3. $column = "tip";
  4. if($cat){
  5.      $where .= " && cat = '$cat'";
  6.      $column .= ",cat";
  7. }
  8. if($raen){
  9.      $where .= " && raen = '$raen'";
  10.      $column .= ",raen";
  11.  
  12. }
  13. //и так со всеми полями
  14.  
  15. $query = "SELECT $column FROM data WHERE $where";
  16.  
  17. $result = mysql_query($query);
  18.  
  19.  
  20.  
  21.  

(Отредактировано автором: 20 Октября, 2012 - 21:39:22)

 
 Top
kalumb
Отправлено: 21 Октября, 2012 - 07:43:42
Post Id


Новичок


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


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




dubasua
Нет, поля в int.
Спасибо, твой вариант работает!
Только я его изменил:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. $where = "tip = '$tip'";
  3. IF($cat){
  4.      $where .= " && cat = '$cat'";
  5. }
  6. IF($raen){
  7.      $where .= " && raen = '$raen'";
  8. }
  9. IF($kom){
  10.      $where .= " && kom = '$kom'";
  11. }
  12. IF($level){
  13.      $where .= " && level = '$level'";
  14. }
  15. $query = "SELECT text,date,id,tip,title FROM data WHERE $where";
  16. $result = mysql_query($query);
  17.  

Я тоже пробовал с переменными, я просто не знал как дописывать значения переменной.
Только вот что в твоём варианте не работает:
Если пользователь не укажет tip, то всё обнуляется.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB