|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.01.2012, 01:58 | #1 |
Пользователь
Регистрация: 19.01.2012
Сообщений: 22
|
Почтовый скрипт
Здравствуйте! Пожалуйста помогите разобраться, почему в скрипте не работает это строка:
mysql_query ('update sum_users set point = "777" id = "'.$this->sum_user['id'].'"'); Если же эту строку вставить в конец скрипта, то всё работает т.е. перезаписывается параметр point в mysql. Но нужно что бы данный параметр перезаписывался после выполнения функции т.е. перед выводом отчета: $this->buf .= 'Отправлено: '.$send_count.'<br>Всего ошибок: '.$error_count.'<br>'; а не просто обновлением страницы. настройки mysql_query прописаны в другом скрипте, т.е. фактически функция mysql_query работает, но если ее вставить в самый конец скрипта. Вот сам скрипт: PHP код:
Последний раз редактировалось max74max; 19.01.2012 в 03:09. |
19.01.2012, 02:38 | #2 |
Участник клуба
Регистрация: 08.03.2008
Сообщений: 1,537
|
Запрос не верно составлен, не должен работать ни коим образом.
Также не ясно откуда появляется значение $this->sum_user['id']? Так попробуйте Код:
|
19.01.2012, 03:17 | #3 |
Пользователь
Регистрация: 19.01.2012
Сообщений: 22
|
К сожалению параметр WHERE ситуацию не меняет, если
mysql_query ('update sum_users set point = "777" id = "'.$this->sum_user['id'].'"'); вставить в конец скрипта то будет все работать как с WHERE так и без него... ГЛАВНЫЙ Вопрос в том куда вставить: mysql_query ('update sum_users set point = "777" id = "'.$this->sum_user['id'].'"'); Если бы вместо 777 была бы переменная $send_count P.S. sum_user['id'] и параметры подключения к БД передаются от другого скрипта! Последний раз редактировалось max74max; 19.01.2012 в 03:25. |
19.01.2012, 03:32 | #4 |
Форумчанин
Регистрация: 08.07.2010
Сообщений: 679
|
Вобще-то для стрингов в sql используются ординарные кавычки
mysql_query ("update sum_users set point = '777' id = '".intval($this->sum_user['id'])."' "); |
19.01.2012, 03:55 | #5 |
Пользователь
Регистрация: 19.01.2012
Сообщений: 22
|
|
19.01.2012, 11:24 | #6 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
Перед запросом - выводим весь подготовленный запрос в браузер, проверяем, что запрос сформирован корректно:
PHP код:
или: К запросу добавляем or die(mysql_error()), или echo mysql_error() после запроса - этот код сообщит нам об ошибках при выполнении запроса: PHP код:
PS: $this->sum_user - не вижу такого атрибута в вашем классе TMails . Значения в запросе UPDATE разделяются запятыми: Цитата:
|
|
19.01.2012, 17:41 | #7 | |
Пользователь
Регистрация: 19.01.2012
Сообщений: 22
|
Спасибо!
PHP код:
Но по непонятным причинам скрипт пытается перезаписать значение id в БД. Тоесть был id = 1, а после выполнения скрипта id стал равен 0 Ошибка следующая: Duplicate entry '0' for key 'PRIMARY' Цитата:
PHP код:
|
|
19.01.2012, 17:44 | #8 |
Участник клуба
Регистрация: 08.03.2008
Сообщений: 1,537
|
|
19.01.2012, 17:54 | #9 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,177
|
update sum_users set point = '777', id = '".intval($this->sum_user['id'])."' ");
дает команду обновить поля point и id, так как intval($this->sum_user['id']) = 0 то именно это значение и пытается записать.. .на ваше счастье - поле id уникально и там уже есть запись с таким значением id иначе бы у вас вся таблица sum_users состояли из значений 777 и 0 в соответствующих полях. происходит - потому что вы не указали условие... условие задется через WHERE в вашем случае update sum_users set point = '777' WHERE id = '".intval($this->sum_user['id']) ни у верное значение intval($this->sum_user['id']) должно быть чтобы для определенного элемента с определенным шв все обновлялось |
20.01.2012, 02:24 | #10 |
Пользователь
Регистрация: 19.01.2012
Сообщений: 22
|
Что-то, я совсем звпутался...
итак: Соединение с БД - есть Такая функция работает, т.е. перезаписывает параметр 777 для id 2 PHP код:
PHP код:
PHP код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Почтовый клиент | emsisem | Помощь студентам | 2 | 13.04.2011 20:31 |
Необходимо написать почтовый скрипт/программу | romtitar | Фриланс | 2 | 15.02.2011 19:22 |
Почтовый уведомитель | Alex Cones | Софт | 2 | 02.06.2010 14:05 |
Почтовый сервер | panmaster | Софт | 20 | 23.09.2009 21:41 |
Почтовый клиент | Mercurium | Помощь студентам | 3 | 22.09.2009 16:28 |