[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Поиск по базе данных: PHP и MySql
einmal
Привет!
Помогите пожалуйста начинающему програмисту smile.gif

Имеется форма запроса по нескольким данным, например name, country, age, email... которая при нажатии send - передает данные на другую страницу... там они собираются с помощью $_POST - каждый в свою $variable...

Вопрос в следующем.... если некоторые из полей не были заполнены.... как правильно создать запрос SQL..... SELECT from Table WHERE ....? чтобы пустые поля были поригнорированы, а заполненные - сумированы с линию запроса "SELECT FROM clients WHERE name=$name AND age=$age AND email=$email"

так как пустые поля выдают error...

это только пример таблицы и базы данных, на самом деле запрос задается по большему колличеству критериев....

Большое спасибо!!!





Спустя 1 час, 45 минут, 45 секунд (23.02.2010 - 15:23) olgatcpip написал(а):
query = "SELECT FROM clients WHERE";
$z='';
if($name)
{ query .= "name=".$name;
$z=' AND ';
}
if($age)
{query .= $z."age=".$age;
$z=' AND ';
}

и т.д

Спустя 7 минут, 1 секунда (23.02.2010 - 15:30) DedMorozzz написал(а):
Цитата
SELECT FROM clients WHERE name=$name AND age=$age AND email=$email

или
Цитата
query = "SELECT FROM clients WHERE";
тока мне кажеться, что тут чего-то не хватает? biggrin.gif
Особено после "Селект" rolleyes.gif

Спустя 1 минута, 28 секунд (23.02.2010 - 15:31) sergeiss написал(а):
olgatcpip - нет, не так. Потому что ты элементарно получишь ошибку.

Вот тут http://phpforum.ru/index.php?showtopic=25777&hl= обсуждали этот вопрос, недавно совсем. В итоге получилось полноценное, рабочее решение задачи.

DedMorozzz - не придирайся к мелочам! Тем более, то Ольга - очень и очень хорошо разбирается в работе с БД smile.gif Тут у нее просто опечатка, насчет списка полей. А ошибка у нее логическая, уже при наборе параметров для where.

Спустя 11 минут, 12 секунд (23.02.2010 - 15:43) DedMorozzz написал(а):
sergeiss А помоему тут мона проще!
SELECT * FROM тратата WHERE id <> 'NULL' AND id='$id' AND name<>'NULL' AND name='$name'....

Цитата
не придирайся к мелочам!
да у мну чёт настроение позитивное smile.gif Аж странно....надо Агату Кристи послушать)

Спустя 1 минута, 24 секунды (23.02.2010 - 15:44) einmal написал(а):
Спасибо ребята, буду пробовать и дам знать какие результаты получились smile.gif

Боюсь только что изучение http://phpforum.ru/index.php?showtopic=25777&hl= у меня займет некоторое время.... smile.gif я все таки не на столько в этом деле продвинутый програмист (ноль практически...) - так что запасусь терпением... smile.gif

Спустя 4 минуты, 4 секунды (23.02.2010 - 15:48) sergeiss написал(а):
Цитата (DedMorozzz @ 23.02.2010 - 16:43)
SELECT * FROM тратата WHERE id <> 'NULL' AND id='$id' AND name<>'NULL' AND name='$name'....

Это неправильно! Потому что задача - исключить из выборки те поля, для которых не было введено данных. А у тебя они в выборке есть все.

Цитата (einmal @ 23.02.2010 - 16:44)
у меня займет некоторое время....

Удачи smile.gif Но учти, что более подробно сложно объяснить - там всё написано ясно и понятно.


Спустя 9 минут, 41 секунда (23.02.2010 - 15:58) DedMorozzz написал(а):
Угу... у "мну": где поле не равно нулл...т.е. его будет проверять на не пустоту и вообще не выдаст smile.gif
Пора заняться чем-то безобидным... а то я щаз накодю )

Спустя 3 минуты, 41 секунда (23.02.2010 - 16:01) Guest написал(а):
sergeiss да да, спасибо! просто я php и mysql изучаю самостоятельно и програмирование мне дается тяжко, и за пару недель пока мало чего изучено... smile.gif))

хотя процесс шел у меня по правильному пути - собрать данные в array но вот никак не было решения как туда AND присобачить smile.gif

мерси всем!

Спустя 1 час, 57 минут, 2 секунды (23.02.2010 - 17:59) olgatcpip написал(а):
sergeiss спасибо, что направил на путь истиный, и как мне это в голову не приходило!?
Да, ошибку поняла... это я так не знала что такое обсуждли и направление написала.... нужно как-то запомнить тему.. и отпралять по подобным вопросам туда.
Цитата
тока мне кажеться, что тут чего-то не хватает?

да... это я у автора скопировала запрос и преобразовала....
не заметила что поля не указаны.

+ уж раз на то пошло... то экранирование кавычен htmlspecialchars, лучше заменить спец функциями pg_escape_string - это в постгере.. в мускуле не знаю.. - это мне в какую тему написать уже запуталась tongue.gif

Спустя 1 час, 54 минуты, 7 секунд (23.02.2010 - 19:53) Gabriel написал(а):
olgatcpip
Цитата
в мускуле не знаю

mysql_real_escape_string();

Спустя 14 часов, 53 минуты, 4 секунды (24.02.2010 - 10:46) einmal написал(а):
Привет!!!
Просто хочу поблагодарить за помощь и за ссылку на объяснение!!!

Работает!!!

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.