Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
 Аватар для Minastis
0 / 0 / 0
Регистрация: 31.08.2012
Сообщений: 38

Передать в WHERE несколько переменных для поиска. Какое значение показывает "любое значение"?

05.09.2012, 15:50. Показов 2133. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот кусок кода:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if ($func=="getSpecNames") {
    echo ("Пришел запрос на сортировку<br>");
    $f = $_GET["f"];
    $i = $_GET["i"];
    $o = $_GET["o"];
    if ($f=="0") {
        $f = "*";
        echo ("поле фамилия было пустое<br>");
    }
    if ($i=="0") {
        $i = "*";
        echo ("поле имя было пустое<br>");
    }
    if ($o=="0") {
        $o = "*";
        echo ("поле отчество было пустое<br>");
    }
    $result = mysql_query("SELECT * FROM clients WHERE familiya='$f' AND imya='$i' AND otchestvo='$o'") or die(mysql_error());
Суть в том, что на странице, с которой идет запрос, есть три поля, Фамилия, Имя и Отчество.
Вопрос, каким образом, если переменная пришла со значением "0" (ноль, я это значение кидаю, если на странице не были заполнены поля. поле пустое = значение равно 0), заменить ее на "любое"?
Пробовал ANY, NULL, *, ничего не работает.
Все воспринимается обычной строкой, поэтому, даже если заполнена лишь фамилия, сортировка и поиск не идет, т.к. Он ищет, к примеру, строку "Прокофьев NULL NULL". А такой, естественно, нет.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.09.2012, 15:50
Ответы с готовыми решениями:

Как передать значение из формы в запрос для поиска, и вывода данных
Подскажите произвести поиск в аксесовской базе по заданному параметру в форме.

Ввести значение x, а затем, в зависимости от того, какое условие выполнено, вычисляет значение для соответствующей f(x)
Добрый день, никак не могу понять как написать это в коде, помогите пожалуйста f(x) = Вот само задание: Создайте алгоритм,...

Какое значение имеет больший приоритет: значение свойства, указанное в стиле, или значение атрибута элемента
Уважаемые, можете объяснить и по возможности выполнить одну задачу , буду благодарен Проверьте, какое значение имеет больший...

3
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
05.09.2012, 15:58
2 способа:
1. если поле не выбрано, просто не включать его проверку в WHERE, т.е. формировать строку запроса динамически
2. если поле не выбрано, записывать в переменную NULL и заменять его на само поле
SQL
1
... AND imya= IFNULL('$i',  imya)
1
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,844
05.09.2012, 16:02
если я верно понял надо из условия убрать пустое условие
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    $where = null;
    $all_empty = true;
    if ($f=="0") {
        $f = "*";
        echo ("поле фамилия было пустое<br>");
    }
     else { $where = ' familiya=\''.$f.'\' AND'; $all_empty = false; }
     
    if ($i=="0") {
        $i = "*";
        echo ("поле имя было пустое<br>");
    }
     else { $where .= ' imya=\''.$i.'\' AND'; $all_empty = false; }
     
    if ($o=="0") {
        $o = "*";
        echo ("поле отчество было пустое<br>");
    }
      else { $where .= ' otchestvo=\''.$o.'\' AND'; $all_empty = false; }
      
    if ($all_empty) echo ("фильтры не заданы - запрос не выполняем<br>");
    else
    {
        $where = rtrim($where , 'AND');
        $result = mysql_query("SELECT * FROM clients WHERE $where") or die(mysql_error());
     
    }
1
 Аватар для Minastis
0 / 0 / 0
Регистрация: 31.08.2012
Сообщений: 38
06.09.2012, 08:27  [ТС]
Спасибо! Была проблема с тем, как удалить последний AND, если добавлять только существующие строки. Не знал о rtrim. Впрочем, как о многих вещах еще.
Еще раз спасибо вам двоим
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.09.2012, 08:27
Помогаю со студенческими работами здесь

Как передать какое-либо значение в другую форму
Помогите пожалуйста уже все перепробовал ни как не получается!!! В первой форме я выбираь текстовый фаил! private void...

Сравнить выделенное значение в combobox и любое другое значение
Есть ComboBox и при выделении элемента &quot;1.11.X&quot; должно выполнятся какое-то действие. В WIndows Form такое работало... private...

Как передать значение переменных клиенту через TPC
Нашел такую тему но не совсем все понял https://www.cyberforum.ru/csharp-beginners/thread550163.html Мне нужно отослать 8...

ActiveX компонент.Необходимо при закрытии формы в поле компонента передать какое-то значение
Есть еще вопрос: пишу свой первый ActiveX компонент, в проекте имеется файл *.ctl и *.frm. При нажатии на кнопке компонента отображается...

Условие в запросе - значение из listbox на форме. Как передать несколько значений?
Народ, не могу разобраться с построением запроса на основе значений из поля ListBox (на форме), в котором включен множественный выбор...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru