Помогите пожалуйста начинающему програмисту
![smile.gif](http://phpforum.ru/html/emoticons/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](http://phpforum.ru/html/emoticons/biggrin.gif)
Особено после "Селект"
![rolleyes.gif](http://phpforum.ru/html/emoticons/rolleyes.gif)
Спустя 1 минута, 28 секунд (23.02.2010 - 15:31) sergeiss написал(а):
olgatcpip - нет, не так. Потому что ты элементарно получишь ошибку.
Вот тут http://phpforum.ru/index.php?showtopic=25777&hl= обсуждали этот вопрос, недавно совсем. В итоге получилось полноценное, рабочее решение задачи.
DedMorozzz - не придирайся к мелочам! Тем более, то Ольга - очень и очень хорошо разбирается в работе с БД
Тут у нее просто опечатка, насчет списка полей. А ошибка у нее логическая, уже при наборе параметров для where.
Вот тут http://phpforum.ru/index.php?showtopic=25777&hl= обсуждали этот вопрос, недавно совсем. В итоге получилось полноценное, рабочее решение задачи.
DedMorozzz - не придирайся к мелочам! Тем более, то Ольга - очень и очень хорошо разбирается в работе с БД
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 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](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 1 минута, 24 секунды (23.02.2010 - 15:44) einmal написал(а):
Спасибо ребята, буду пробовать и дам знать какие результаты получились ![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Боюсь только что изучение http://phpforum.ru/index.php?showtopic=25777&hl= у меня займет некоторое время....
я все таки не на столько в этом деле продвинутый програмист (ноль практически...) - так что запасусь терпением...
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Боюсь только что изучение http://phpforum.ru/index.php?showtopic=25777&hl= у меня займет некоторое время....
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
![smile.gif](http://phpforum.ru/html/emoticons/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](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 9 минут, 41 секунда (23.02.2010 - 15:58) DedMorozzz написал(а):
Угу... у "мну": где поле не равно нулл...т.е. его будет проверять на не пустоту и вообще не выдаст
Пора заняться чем-то безобидным... а то я щаз накодю )
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Пора заняться чем-то безобидным... а то я щаз накодю )
Спустя 3 минуты, 41 секунда (23.02.2010 - 16:01) Guest написал(а):
sergeiss да да, спасибо! просто я php и mysql изучаю самостоятельно и програмирование мне дается тяжко, и за пару недель пока мало чего изучено...
))
хотя процесс шел у меня по правильному пути - собрать данные в array но вот никак не было решения как туда AND присобачить![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
мерси всем!
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
хотя процесс шел у меня по правильному пути - собрать данные в array но вот никак не было решения как туда AND присобачить
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
мерси всем!
Спустя 1 час, 57 минут, 2 секунды (23.02.2010 - 17:59) olgatcpip написал(а):
sergeiss спасибо, что направил на путь истиный, и как мне это в голову не приходило!?
Да, ошибку поняла... это я так не знала что такое обсуждли и направление написала.... нужно как-то запомнить тему.. и отпралять по подобным вопросам туда.
Да, ошибку поняла... это я так не знала что такое обсуждли и направление написала.... нужно как-то запомнить тему.. и отпралять по подобным вопросам туда.
Цитата |
тока мне кажеться, что тут чего-то не хватает? |
да... это я у автора скопировала запрос и преобразовала....
не заметила что поля не указаны.
+ уж раз на то пошло... то экранирование кавычен htmlspecialchars, лучше заменить спец функциями pg_escape_string - это в постгере.. в мускуле не знаю.. - это мне в какую тему написать уже запуталась
![tongue.gif](http://phpforum.ru/html/emoticons/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](http://pharm-forum.ru/smiles/april/hoera.gif)