|
|
|
| Запрос в таком виде:
UPDATE users SET login = 'admin', pass = '12345', email = 'mail@server.com' WHERE id = '1';
|
Скрипту, который составляет запрос к БД, данные пользователя присылаются из формы методом post. Но вот только пользователь может изменить не все данные, и как в таком случае в скрипте составлять такой запрос к БД? | |
|
|
|
|
|
|
|
для: Mookapek
(09.11.2009 в 00:48)
| | Бля, пиздец :))))) | |
|
|
|
|
|
|
|
для: Mookapek
(09.11.2009 в 00:48)
| | В запросе UPDATE вовсе необязательно перечислять все поля таблицы, если Вы об этом. | |
|
|
|
|
|
|
|
для: Trianon
(09.11.2009 в 01:28)
| | Нет, я не о том.
Если пользователь изменил только email, то запрос будет уже таким:
UPDATE users SET email = '$_POST[email]' WHERE id = '1';
|
Это ясно. Не ясно как в скрипте это реализовать. Делать кучу проверок и такую же кучу вариантов запроса? То есть, если изменен только логин, запрос, такой такой-то, если логин и пароль - то запрос уже другой вид примет и так далее. Сами понимаете, некрасиво и нерационально получится. | |
|
|
|
|
|
|
|
для: Mookapek
(09.11.2009 в 02:01)
| | Составлять строку запроса из отдельных кусочков.
В конце концов SQL-запрос - это обычный текст, пока его серверу не отправят.
Вот и работайте с ним, как с текстом. | |
|
|
|
|
|
|
|
для: Trianon
(09.11.2009 в 02:10)
| | Если работать с кусочками, то встает проблема с разделительными запятыми. Опять таки придется прибегать к многочисленным проверкам. Как сделать всё правильно и красиво? | |
|
|
|
|
|
|
|
для: Mookapek
(09.11.2009 в 02:34)
| | нет там проблемы с запятыми.
<?
$flds = array('email', 'icq', 'nickname');
foreach($flds as $fld)
if(!empty($_POST[$fld]))
$list[] = "`$fld` = '" . mysql_real_escape_string(trim($_POST[$_POST[$fld]))."' ";
$sql = "UPDATE `users` SET ". implode(', ', $list) . " WHERE `id` = ".intval($login_id);
|
| |
|
|
|