Aleks-prog
Новичок
Здравствуйте,
такая проблемка
MySQL пишет что запрос пуст was empty, правильно ли я его формирую?
я так обрабатываю все данные из формы переданные методом GET,
в данном скрипте вывода нет просто формируется динамически запрос к БД
если не трудно помогите разобраться, нужно чтобы в запрос добавлялись операторы <= => в зависимости от того какие данные были получены из формы
нжно чтобы запрос был не пуст
такая проблемка
MySQL пишет что запрос пуст was empty, правильно ли я его формирую?
я так обрабатываю все данные из формы переданные методом GET,
в данном скрипте вывода нет просто формируется динамически запрос к БД
если не трудно помогите разобраться, нужно чтобы в запрос добавлялись операторы <= => в зависимости от того какие данные были получены из формы
нжно чтобы запрос был не пуст
PHP:
if(isset($_POST['search'])) // если кнопка нажата
{
// Пришедшие данные
$f_room0 = isset($_GET['f_room0']) ? $_GET['f_room0'] : 0;
$f_room1 = isset($_GET['f_room1']) ? $_GET['f_room1'] : 0;
$f_room2 = isset($_GET['f_room2']) ? $_GET['f_room2'] : 0;
$f_room3 = isset($_GET['f_room3']) ? $_GET['f_room3'] : 0;
$rayon = isset($_GET['rayon']) ? $_GET['rayon'] : 0;
$ftype = isset($_GET['ftype']) ? $_GET['ftype'] : 0;
$material = isset($_GET['material']) ? $_GET['material'] : 0;
$quorter = isset($_GET['quorter']) ? $_GET['quorter'] : 0;
$minamount = isset($_GET['minamount']) ? $_GET['minamount'] : 0;
$maxamount= isset($_GET['maxamount']) ? $_GET['maxamount'] : 0;
$minlamount = isset($_GET['minlamount']) ? $_GET['minlamount'] : 0;
$maxlamount= isset($_GET['maxlamount']) ? $_GET['maxlamount'] : 0;
$minprice = isset($_GET['minprice']) ? $_GET['minprice'] : 0;
$maxprice= isset($_GET['maxprice']) ? $_GET['maxprice'] : 0;
// создаем ассоциативный массив
$array = array(
"`komnat`" => $f_room0,
"`komnat`" => $f_room1,
"`komnat`" => $f_room2,
"`komnat`" => $f_room3,
"`rayon`" => $area,
"`planirovka`" => $ftype,
"`material_sten`" => $material,
"`kvartal`" => $quorter,
"`S`" => $minamount,
"`S`" => $maxamount,
"`S_zil`" => $minlamount,
"`S_zil`" => $maxlamount,
"`cena`" => $minprice,
"`cena`" => $maxprice,
);
// Начальная строчка запроса
$sql = "SELECT * FROM `novostr`";
//Создаем пустой масив для условия WHERE
$sql_where = array();
//Перебираем массив
foreach($array as $key => $value)
{
// Если есть 0 в запросе отсеиваем его
if(!empty($value))
if($array[$key]==$minamount){
$sql_where[] = $key." >= ".$value;
if(count($sql_where) > 0)
{
$sql .=" WHERE ";
}
//Формируем окончательную строку запроса
$sql.=" ".implode(" AND ", $sql_where);
}
elseif($array[$key]==$maxamount){
$sql_where[] = $key." <= ".$value;
if(count($sql_where) > 0)
{
$sql .=" WHERE ";
}
//Формируем окончательную строку запроса
$sql.=" ".implode(" AND ", $sql_where);
}
elseif($array[$key]==$minlamount){
$sql_where[] = $key." <= ".$value;
if(count($sql_where) > 0)
{
$sql .=" WHERE ";
}
//Формируем окончательную строку запроса
$sql.=" ".implode(" AND ", $sql_where);
}
elseif($array[$key]==$maxlamount){
$sql_where[] = $key." <= ".$value;
if(count($sql_where) > 0)
{
$sql .=" WHERE ";
}
//Формируем окончательную строку запроса
$sql.=" ".implode(" AND ", $sql_where);
}
elseif($array[$key]==$minprice){
$sql_where[] = $key." <= ".$value;
if(count($sql_where) > 0)
{
$sql .=" WHERE ";
}
//Формируем окончательную строку запроса
$sql.=" ".implode(" AND ", $sql_where);
}
elseif($array[$key]==$maxprice){
$sql_where[] = $key." <= ".$value;
if(count($sql_where) > 0)
{
$sql .=" WHERE ";
}
//Формируем окончательную строку запроса
$sql.=" ".implode(" AND ", $sql_where);
}
else{
$sql_where[] = $key." = ".$value;
if(count($sql_where) > 0)
{
$sql .=" WHERE ";
}
//Формируем окончательную строку запроса
$sql.=" ".implode(" AND ", $sql_where);
}
}
}