Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: помогите с запросом update

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Не пойму где ошибка, помогите разобраться
roman_php
Отправлено: 21 Января, 2008 - 14:25:05
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




Доброго времени суток. Помогите, пожалуйста, разобраться с запросом «update» к базе mysql.
Я делаю скрипт новостей и дошел до того момента, где в админе есть возможность редактировать новость (тоесть по идее обновлять «update» строку в базе по индификатору)
CODE (text):
скопировать код в буфер обмена
  1. <?php
  2. $tema=$_POST['temanew'];//отредактированная тема
  3. $opis=$_POST['opisanie'];//отредактируемое описание
  4. $text=$_POST['textnew'];//отредактированный текст новости
  5. $id=$_POST['id'];//индификатор новости (указывает на строку в MySQL)
  6. //функция поключения к базе MySQL и выбора бызы
  7. function db_connect($host="localhost",$name_db="forma",$user_db="root",$pass_db="motorola")
  8. {mysql_connect($host, $user_db, $pass_db)or die
  9. ('I cannot connect to db: ' . mysql_error());
  10. //это что бы понимало русскую кодировку
  11. mysql_query("set character_set_client='cp1251'");
  12. mysql_query("set character_set_results='cp1251'");
  13. mysql_query("set collation_connection='cp1251_general_ci'");
  14. //выбрать базу данных
  15. mysql_select_db($name_db);}
  16. db_connect();
  17. mysql_query("UPDATE forma SET (id_name='$tema', opisanie_new='$opis', text_new='$text')
  18. WHERE news_id=$id") or die("Ошибка запроса : " . mysql_error());
  19. ?>
  20.  

Из формы передаются обновленные пользователем данные методом POST и записываются в переменные $tema, $opis, $text, а $id это уникальный индификатор поля в которой надо произвести изменения.
Почему то не получается запрос к базе: mysql_query("UPDATE forma SET(id_name='$tema', opisanie_new='$opis', text_new='$text')
WHERE news_id=$id") or die("Ошибка запроса : " . mysql_error());
То ли я не понял как обновлять с update, то ли мануал по MySQL такой хороший.
Помогите пожалуйста сделать правильный запрос к базе «forma» таблице «news», что бы обновить данные и вставить в таблицу обновленную инфу которая содержится в переменных $tema, $opis, $text, обновить нужно строку с уникальным индификатором $id.
 
 Top
EuGen Администратор
Отправлено: 21 Января, 2008 - 15:14:32
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Вы неправильно написали запрос UPDATE - ошиблись в синтаксисе. Правильно будет так:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. mysql_query("UPDATE forma SET id_name='".addslashes($tema)."', opisanie_new='".addslashes($opis)."', text_new='".addslsahes($text)."' WHERE news_id=".(int)($id)) or die("Ошибка запроса : " . mysql_error());
  3.  

Обратите внимание так же, что я добавил экранирование переменных в запросе во избежание SQL-инъекций.

(Отредактировано автором: 21 Января, 2008 - 15:15:07)



-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Dastar
Отправлено: 21 Января, 2008 - 15:55:55
Post Id



Частый гость


Покинул форум
Сообщений всего: 199
Дата рег-ции: Янв. 2008  
Откуда: Израиль


Помог: -6 раз(а)




Не знаю почему, но в некоторых учебниках синтаксис UPDATE показывают так:
UPDATE table_name SET (pole='obnovlenie', pole2='obnovlenie2'...) WHERE id='id'


-----
Не знаешь - молчи.
 
 Top
roman_php
Отправлено: 21 Января, 2008 - 17:34:46
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




Всем огромное спасибо, я понял свою ошибку!!!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB