|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Поиск в таблице mysql через формы+php |
|
[решено] Поиск в таблице mysql через формы+php
|
Старожил Сообщения: 252 |
Профиль | Отправить PM | Цитировать Создал форму где 13 форм типа text, каждая соответствует определённому сталбцу таблицы, форма применяет скрипт:
Дело в том что данный скрипт ни чего не хочет находить. Если мы оставим только одино значение например он работает, я подумал может нужно в место and нужно применить or т.е. "или" но он показывает в результате всю таблицу да и ещё одну строку несколько раз! Знаю что если я сделаю банальный sql запрос он будет работать но как этот принцип применить в php? Может стоит в одной странице сделать 13 форм с различным вариантом поиска, и пусть клиент сам решает что и где искать!? Это конечно выход, но.... |
|
Отправлено: 12:27, 11-05-2012 |
Ветеран Сообщения: 1384
|
Профиль | Отправить PM | Цитировать В критерии WHERE у вас используется точное равенство. А в "рабочем" примере ниже вы используете Like т.е. похожее значение. И если вы используете логический and вы тоже должны понимать что если хоть одно сравнение будет faslse то результатом будет 0 строк.
Покажите пожалуйста одну строку из таблицы и конкретный пример который по-вашему должен вывести данную строку. Ну и что соответственно выводит если не то что вы хотели бы. |
------- Отправлено: 14:35, 11-05-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Deadooshka Сообщения: 2514
|
Профиль | Отправить PM | Цитировать 1. выведите текст ошибки echo mysql_error($link);
2. лучше выделить связку таблиц из условия (join) |
Отправлено: 21:45, 11-05-2012 | #3 |
Старожил Сообщения: 252
|
Профиль | Отправить PM | Цитировать Цитата Tonny_Bennet:
Цитата Tonny_Bennet:
Цитата Sham:
Цитата Sham:
|
||||
Отправлено: 23:05, 11-05-2012 | #4 |
Deadooshka Сообщения: 2514
|
Профиль | Отправить PM | Цитировать 2. http://dev.mysql.com/doc/refman/5.6/en/join.html
Цитата cibin:
http://dev.mysql.com/doc/refman/5.6/...recedence.html |
||
Отправлено: 01:01, 12-05-2012 | #5 |
Старожил Сообщения: 252
|
Профиль | Отправить PM | Цитировать ааааааа т.е. запись подобного типа должно быть?
|
Отправлено: 09:32, 12-05-2012 | #6 |
Ветеран Сообщения: 1384
|
Профиль | Отправить PM | Цитировать Цитата cibin:
Пусть у вас есть таблица с тремя полями Name, Sername, Country. И есть форма также с тремя полями, которые, к примеру, через массив $_GET возвращают значения $_GET['name'], $_GET['sername'], $_GET['country']. Формируя запрос типа $query = "SELECT * FROM table" вы должны проверять не является ли пустым поле, которое ввёл пользователь. Что-то вроде Т.е. если переменная $_GET['country'] не пустая, то к запросу добавится часть, содержащая условие равенства страны. И так нужно сделать для каждой переменной, постепенно формируя свой запрос. |
|
------- Отправлено: 10:15, 12-05-2012 | #7 |
Старожил Сообщения: 252
|
Профиль | Отправить PM | Цитировать Я правильно понял что после скрипта запроса select требуеться условием ввести проверку
для каждого значение. Если читать код то получится что идёт отбор (SELECT) дальше проверка на пустоту формы, дальше выводим результат! Я всё правильно понял? |
Отправлено: 14:08, 12-05-2012 | #8 |
Ветеран Сообщения: 1384
|
Профиль | Отправить PM | Цитировать Цитата cibin:
К примеру часть кода В переменной $a слово Hello в переменной $b слово world!. А в переменной $c содержится строка объединенная из этих двух сток т.е. "Hello world!". Вот так и в примере, который я описал. Сначала в переменной $query есть начало запроса: $query = "SELECT * FROM table WHERE ". А потом если поле $_GET['country'] не пустое то мы к переменной $query добавляем строку, содержащую условие " AND Country = $_GET['country']" и запрос становится длиннее. "SELECT * FROM table WHERE AND Country = $_GET['country'] " Но как видно я тут допустил ошибку: после where идёт слово AND и нам MySQL скажет, что это неправильно. В общем нужно продумать логику обработки пустых полей, создать флаг, отвечающий за то было ли выбрано предыдущее поле и по нему ориентироваться ставить ли "AND". И на основе несложных выражений формулировать запрос. Для проверки его можно просто выводить на страничке. |
|
------- Отправлено: 14:46, 12-05-2012 | #9 |
Старожил Сообщения: 252
|
Профиль | Отправить PM | Цитировать Я только хотел было написать что я написал таким образом:
Но он выдаёт синтаксическую ошибку! Я уж думал что я опять не так понял! |
Отправлено: 14:51, 12-05-2012 | #10 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Поиск одинаковых значений в одной таблице MySQL | blackmane | Вебмастеру | 1 | 01-04-2012 14:27 | |
Поиск заданного текста в коде формы с периодическим её обновлением. | BAORope | AutoIt | 0 | 30-03-2012 19:52 | |
MSFT SQL Server - Поиск пустого поля в таблице | rivera | Программирование и базы данных | 2 | 05-07-2011 11:04 | |
Выборочная загрузка и выгрузка данных из формы в таблицу MySQL | dima1981 | Вебмастеру | 8 | 25-08-2008 18:02 | |
Поиск в MySQL | LEXX2002 | Вебмастеру | 15 | 09-10-2004 01:04 |
|