Змінюй хід війни! Допомагай ЗСУ!

Вопрос по mysql

🟢 06:00 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
Статус: Offline
Реєстрація: 04.07.2008
Повідом.: 675
  • 🟢 06:00 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #1
Вопрос по mysql

Есть запрос:
Select * from `mybase` where id='$id' and name=$name;
Но если у меня переменная $id будет пуста, как можно сделать чтобы тогда выбирало все данные где есть $name?А если $id будет заполнено тогда чтобы выполнялся полный запрос с выборкой того и того?
:)
 
  • 🟢 06:00 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #2
Но если у меня переменная $id будет пуста, как можно сделать чтобы тогда выбирало все данные где есть $name?А если $id будет заполнено тогда чтобы выполнялся полный запрос с выборкой того и того?
:)

посылать разные запросы.
 
  • 🟢 06:00 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #3
Есть запрос:
Select * from `mybase` where id='$id' and name=$name;
Но если у меня переменная $id будет пуста, как можно сделать чтобы тогда выбирало все данные где есть $name?А если $id будет заполнено тогда чтобы выполнялся полный запрос с выборкой того и того?
:)

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

Как-то так.
 
  • 🟢 06:00 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #4
почему вы решили, что это вопрос по mysql? что не позволяет проверить $id до выполнения запроса, а потом уже решить, в каком виде и какой запрос выполнять?

блин, уже успели отписать..
 
  • 🟢 06:00 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #5
Ну а если там будет куча таких запросов, мне что везде писать if или тернарный оператор???А с помощью мускула можно как то?Например вместо $id поставить звездочку )))))

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

Вообще это форма поиска, по одному либо по нескольким либо по всем параметрам...
 
Останнє редагування:
  • 🟢 06:00 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #6
даже если бы было можно поставить звездочку, вам нужно было бы сначала определить, нужно её ставить или нет.

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

БД хорошо работает с данными и пусть работает, не заставляйте её думать о том, что у вас там не так срослось в пхп-коде, что какие-то переменные оказались не инициализированными
 
  • 🟢 06:00 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #7
Ну а если там будет куча таких запросов, мне что везде писать if или тернарный оператор???

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

Код:
$select = $this->select();
foreach ($filters as $name => $val) {
    $select->where("{$name} = :{$name})";
    $select->bind($name, $val);
}
 
Останнє редагування:
  • 🟢 06:00 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #8
даже если бы было можно поставить звездочку, вам нужно было бы сначала определить, нужно её ставить или нет.

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

БД хорошо работает с данными и пусть работает, не заставляйте её думать о том, что у вас там не так срослось в пхп-коде, что какие-то переменные оказались не инициализированными

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

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

Код:
$select = $this->select();
foreach ($filters as $name => $val) {
    $select->where("{$name} = :{$name})";
    $select->bind($name, $val);
}

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

А кто то работал с Google maps??
 
  • 🟢 06:00 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #9
del
 
Останнє редагування:
  • 🟢 06:00 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #10
  • 🟢 06:00 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #11
есть такая функция join aka implode…
 
  • 🟢 06:00 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #12
также в mysql есть хранимые процедуры sp
 
Назад
Зверху Знизу