Вопрос по mysql

Статус: Offline
Реєстрація: 04.07.2008
Повідом.: 675
  • 🟠 19:53 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #1
Вопрос по mysql

Есть запрос:
Select * from `mybase` where id='$id' and name=$name;
Но если у меня переменная $id будет пуста, как можно сделать чтобы тогда выбирало все данные где есть $name?А если $id будет заполнено тогда чтобы выполнялся полный запрос с выборкой того и того?
 
  • 🟠 19:53 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #2

посылать разные запросы.
 
  • 🟠 19:53 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #3

Код:
$sql = 'select * from mybase where '.(!empty(id) ? 'id='.mysql_real_escape_string($id).' and ' : ' ').'name='.mysql_real_escape_string($name);

Как-то так.
 
  • 🟠 19:53 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #4
почему вы решили, что это вопрос по mysql? что не позволяет проверить $id до выполнения запроса, а потом уже решить, в каком виде и какой запрос выполнять?

блин, уже успели отписать..
 
  • 🟠 19:53 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #5
Ну а если там будет куча таких запросов, мне что везде писать if или тернарный оператор???А с помощью мускула можно как то?Например вместо $id поставить звездочку )))))

Вообще это форма поиска, по одному либо по нескольким либо по всем параметрам...

Вообще это форма поиска, по одному либо по нескольким либо по всем параметрам...
 
Останнє редагування:
  • 🟠 19:53 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #6
даже если бы было можно поставить звездочку, вам нужно было бы сначала определить, нужно её ставить или нет.

можете составить строку запроса из отдельных фильтров по числу ваших полей для поиска. если соответствующая переменная не инициализирована - фильтр по этому полю не включаете. потом объедините эти фильтры через ' AND ' и возможно наступит щастье

БД хорошо работает с данными и пусть работает, не заставляйте её думать о том, что у вас там не так срослось в пхп-коде, что какие-то переменные оказались не инициализированными
 
  • 🟠 19:53 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #7

запихните его в функцию и не трахайте мозги.
мне бы ваши проблемы.

Код:
$select = $this->select();
foreach ($filters as $name => $val) {
    $select->where("{$name} = :{$name})";
    $select->bind($name, $val);
}
 
Останнє редагування:
  • 🟠 19:53 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #8

Про отдельные фильтры я не подумал.
Спасибо так все работает !


Там много полей, и значения уже приходят в массиве в соответствующий класс

А кто то работал с Google maps??
 
  • 🟠 19:53 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #9
del
 
Останнє редагування:
  • 🟠 19:53 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #10
  • 🟠 19:53 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #11
есть такая функция join aka implode…
 
  • 🟠 19:53 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #12
также в mysql есть хранимые процедуры sp