Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сделать поиск только по одному параметру, по нескольким
 
 автор: shuhrat   (10.10.2009 в 10:43)   письмо автору
 
 

с помощью MySQL создана база
по нескольким параметрам(кол-во запрашиваемых параметров 7) надо
выводить информацию в отдельном окне.
при этом запрос может быть только по одному параметру, по нескольким
параметрам или по всем параметрам.
какими командами можно это осушествить?
Я воспользовалься нижеследуюшими командами. во время запроса не
корректно работает.
Пожалуйста помогите решить эту проблему.

$name_station=$_POST['name_station'];
$ident=$_POST['ident'];
if ($name_station=='name_station') $name_station='%';
if ($ident=='') $ident='%';
$result=mysql_query("select * from data1,data2,data3 where name_station
like '$name_station' AND ident like '$ident'");

  Ответить  
 
 автор: cheops   (10.10.2009 в 12:45)   письмо автору
 
   для: shuhrat   (10.10.2009 в 10:43)
 

Обычно под все параметры формируют отдельные условия, может даже в массиве
<?php
  $sql 
= array();
  if(!empty(
$_POST['name_station'])) $sql[] = "name_station like '$_POST[name_station]%'";
  ...
  if(!empty(
$_POST['ident'])) $sql[] = "ident like '$_POST[ident]%'";
?>

Затем уже в SQL-запросе их объединяют, сколько их там набралось в массиве
<?php
  
if(!empty($sql))
  {
     
$query "SELECT * FROM tbl WHERE ".implode(" AND "$sql);
  }
?>

PS У вас данные извлекаются из трех табли data1,data2,data3 - если имеются совпадения в названиях столбцов - следует использовать расширенные имена столбцов в запросе, т.е. с указанием принадлежности к таблице, например data1.ident.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования