Цитата 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". И на основе несложных выражений формулировать запрос. Для проверки его можно просто выводить на страничке.