Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 177

Профиль | Отправить PM | Цитировать


Цитата cibin:
Если читать код то получится что идёт отбор (SELECT) дальше проверка на пустоту формы, дальше выводим результат!
Я всё правильно понял? »
Наверное не очень. Оператор "." (точка) в PHP служит для объединения строк.

К примеру часть кода

Код: Выделить весь код
$a = "Hello "
$b = "world!"

$c = $a.$b

echo $c

В переменной $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