![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Tangash |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 29.10.2006 Репутация: нет Всего: нет |
Задача!!!
Существует база данных пользователей - имя - адрес - телефон - сайт Существует форма изменения данных пользователей - имя - адрес - телефон - сайт Не получается создать динамический запрос на изменение данных пользователя, не зависимо от того какие поля он вводит... |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 14 Всего: 260 |
что значит "не получается"? код привести сложно? (подсказываю: HTML-код формы и код PHP-обработчика) Тогда и посмотрим...
|
|||
|
||||
Tangash |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 29.10.2006 Репутация: нет Всего: нет |
Вот код запроса...
$query ="UPDATE `USERS` SET 1"; if (!empty($newname)) $query .= " , `name` = '".$newname."'"; if (!empty($newaddress)) $query .= " , `address` = '".$newaddress."'"; if (!empty($newtel)) $query .= " , `tel` = '".$newtel."'"; if (!empty($newsite)) $query .= " , `site` = '".$newsite."'"; if (!empty($newemail)) $query .= " , `email` = '".$newemail."'"; if (!empty($newpass)) $query .= " , `pass` = '".$newpass."'"; $query .= " WHERE `id` = '".$id."'"; //выполняем запрос $r=mysql_query($query); $newname, $newaddress... это переменные уже поученные из формы... но этот запрос не работает... не могу ошибку найти... |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 14 Всего: 260 |
пункт 1. оформляй код при помощи кнопки "Код" справа выше поля ввода сообщения: и нам проще читать(кто помочь пытается) и сам можешь найти очепятки благодаря подсветке синтаксиса.
пункт 2. что выдает mysql_error? |
|||
|
||||
Tangash |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 29.10.2006 Репутация: нет Всего: нет |
mysql ничего не выдает, ошибки нет, только обновление записи не происходит, вот вчем проблема...
Добавлено @ 10:56
$newname, $newaddress... это переменные уже поученные из формы... |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 14 Всего: 260 |
вообще, конструкция вида UPDATE ... SET 1, вызывает ошибку. Если хочешь сделать, как собирался(добавлять строки с запятой впереди) прописывай поле, которое никак не будет изменяться. Например, так:
Добавлено @ 10:58 у меня выдало. странный у тебя какой-то MySQL |
|||
|
||||
Tangash |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 29.10.2006 Репутация: нет Всего: нет |
непонятно... всмысле не меняющееся поле? мне нужно чтобы изменились только те поля которые внес пользователь...
|
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 14 Всего: 260 |
вызовет ошибку. у меня вызывает. И у тебя, скорее всего, просто тебе не видать. тебе зачем эта несчастная единица? чтоб, несмотря на наличие переданных полей в форме, запрос был корректен? чтоб запятую можно было в любой строке поставить и не было ошибки? вот я тебе и говорю, что для этого приема можно использовать обновление поля самим собой... Добавлено @ 11:15 вставь после формирования запроса echo $query, скопируй выданный запрос и брось сюда. а еще лучше - воспользуйся доступом к своей БД и запусти этот запрос в том же phpMyAdmin, или в любом другом средстве связи с базой. и скажи, произошло обновление или нет. |
|||
|
||||
Tangash |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 29.10.2006 Репутация: нет Всего: нет |
а запятая в запросе выдаст ошибку???
например
|
|||
|
||||
skyboy |
|
||||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 14 Всего: 260 |
а сам-то как думаешь?
Добавлено @ 11:33 конечно, выдаст. почему бы не сделать так:
или так:
|
||||
|
|||||
Tangash |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 29.10.2006 Репутация: нет Всего: нет |
Не работает твой код!!! Он работает если только введено первое значение, а без него ни как...
|
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 14 Всего: 260 |
да я же и справшиваю: есть у тебя неизменяемые поля или нет? вот и вставил бы, чтоб даже в случае "ничего не пришло" запрос был бы корректным. А вообще - сделал бы себе флаг: если хоть что-то пришло - выполняешь запрос, если ничего нет - совсем не обрабатываешь $_GET и запрос, соотвественно, не формируешь..
. |
|||
|
||||
skyboy |
|
||||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 14 Всего: 260 |
хм. два решения. первое: добавлять к запросу всегда с передидущей запятой, а потом - её удалить:
второе решение: использование массива для определения списка обновления:
|
||||
|
|||||
afork |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 5.4.2006 Репутация: нет Всего: нет |
товарищи вы куда то не туда забрели , по моему все кратно проще ....
|
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |