|
|
|
| с помощью 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'"); | |
|
|
|
|
|
|
|
для: 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. | |
|
|
|