Перейти к содержимому

Сервис обмена электронных валют

Партнерская программа Kredov

Не работает UPDATE данных в таблице БД

#1 Вячеслав

Вячеслав
  • Пользователь
  • 357 сообщений
  • Репутация: 0
0

Отправлено 18 Август 2009 - 15:21

Привет! Подскажите где у меня ошибка, сам найти не могу - скрипт выводит данные из таблици БД по определенному id в форму-для редактирования, потом отправляет эти отред данные сам на себя и через запрпос UPDATE bol... должен обновить эти данные в БД, но не обновляет!!!

Почему где ошибка?

<?

$db = mysql_connect ("localhost","bol","bol");
mysql_select_db ("bol", $db);

/***ЗДЕСЬ УСЛОВИЕ ПРИ КОТОРОМ ВЫВОДИТСЯ ФОРМА РЕДАКТИРОВАНИЯ ЗАПИСИ В ТАБЛИЦЕ bol*********/

if(isset ($_GET['rider'])){
$result = mysql_query("SELECT * FROM bol WHERE id = '$id'");
$myrow = mysql_fetch_array($result);

print <<<HERE
<div align="center">

<form method="POST" action="rider.php?id=$id">

Страна

<div><input name='nomer' type='text' value="$myrow[nomer]"></div>

<br>

Дата тура

<div><input name='otpr' type='text' value="$myrow[otpr]"></div>

<br>

Маршрут

<div><input name='from' type='text' value="$myrow[from]"></div>

<br>

Количество дней

<div><input name='dest' type='text' value="$myrow[dest]"></div>

<br>

Стоимость

<div><input name='price' type='text' value="$myrow[price]"></div>

<br>

<input type='submit' value='Сохранить'>

<input type='hidden' name='update' value="update">
<input type='hidden' name='id' value="$id">

</form>

</div>
HERE;


}

if(isset ($_POST['update'])){

/*Получаем переменные полей формы методом POST .*/
if (isset($_POST['nomer'])) {$nomer = $_POST['nomer']; if ($nomer == '') {unset($nomer);}}
if (isset($_POST['otpr'])) {$otpr = $_POST['otpr']; if ($otpr == '') {unset($otpr);}}
if (isset($_POST['from'])) {$from = $_POST['from']; if ($from == '') {unset($from);}}
if (isset($_POST['dest'])) {$dest = $_POST['dest']; if ($dest == '') {unset($dest);}}
if (isset($_POST['price'])) {$price = $_POST['price']; if ($price == '') {unset($price);}}
if (isset($_GET['id'])) {$id = $_GET['id']; if ($id == '') {unset($id);}}


/*Создаем условие-проверку на наличие переменных, которые мы создавали из глобальных переменных полученных методом POST*/

if (isset($nomer) && isset($otpr) && isset($from) && isset($dest) && isset($price))
{
/* Здесь пишем что можно заносить информацию в базу */
$res= mysql_query("UPDATE bol SET nomer='$nomer',otpr='$otpr',from='$from',dest='$dest', price='$price' WHERE id='$id'");

if ($res == 'true') {/*Формируем перезагрузку страницы http-equiv='Refresh'*/
echo "<html><head><meta http-equiv='Refresh' content='0; URL=http://localhost/limoh/rider.php?rider=1&id=$id'></head></html>";}
else {echo "<p>Запись не отредактирована!</p>";}


}
else

{
echo "<p>Вы ввели не всю информацию, поэтому запись базе не может быть обновлена.</p>";
}
}







?>

 

 

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Где лежат таблицы БД и как переносить сайт
  2. Убрать пробелы из таблицы в базе данных wordpress
  3. Одна база данных sql для нескольких сайтов.
  4. После обновления PHP не пишет в БД
  5. Помогите с таблицей wp_commnets в базе данных wordpress

#2 Евгений

Евгений
  • Пользователь
  • 481 сообщений
  • Репутация: 0

Отправлено 18 Август 2009 - 15:49

$res= mysql_query("UPDATE bol SET nomer='$nomer',otpr='$otpr',from='$from',dest='$dest', price='$price' WHERE id='$id'") or die(mysql_error());

что напишет?
  • 0

#3 Вячеслав

Вячеслав
    Topic Starter
  • Пользователь
  • 357 сообщений
  • Репутация: 0

Отправлено 18 Август 2009 - 17:16

Вот что пишет:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from='vxxfv',dest='111', price='xdvxdv' WHERE id='1'' at line 1


Переводится как:

У Вас есть ошибка в Вашем синтаксисе SQL; проверьте руководство, которое соответствует Вашей версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом 'от ='ллл', dest ='ммм', цена ='п' ГДЕ id = '1" в линии 1


  • 0

#4 Евгений

Евгений
  • Пользователь
  • 481 сообщений
  • Репутация: 0

Отправлено 18 Август 2009 - 19:53

переименуйте поле FROM, мне кажется ругается потому что FROM в mysql служебное слово.
  • 0

#5 Вячеслав

Вячеслав
    Topic Starter
  • Пользователь
  • 357 сообщений
  • Репутация: 0

Отправлено 18 Август 2009 - 20:49

Спасибо огромное!!! Все заработало!!!

Я переименовал!!!


  • 0

#6 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 19 Август 2009 - 11:40

Вячеслав,
1) Научись уже наконец оформлять код правильно. Теперь на форуме введена подсветка кода, пожалуйста используй её.
2)

переименуйте поле FROM, мне кажется ругается потому что FROM в mysql служебное слово.

FROM - естественно является служебной конструкцией и использовать её как поле можно, но обязательно нужно заключать название поля в обратные ковычки `FROM`
  • 0


Оформление форума – IPBSkins.ru