Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как правильно перезаписать данные в таблицу
 
 автор: Dizels   (24.11.2007 в 22:42)   письмо автору
 
 

Вот таблица:

CREATE TABLE `enterprise` (
  `id` int(11) NOT NULL auto_increment,
  `name` text NOT NULL,
  `form` text NOT NULL,
  `create` varchar(10) NOT NULL default '0000-00-00',
  `leader` text NOT NULL,
  `bithday_leader` varchar(10) NOT NULL default '0000-00-00',
  `activity` text NOT NULL,
  `rewards` text NOT NULL,
  `adress` text NOT NULL,
  `sity` text NOT NULL,
  `phone` varchar(16) NOT NULL default '',
  `fax` varchar(16) NOT NULL default '',
  `email` text NOT NULL,
  `site` text NOT NULL,
  `additionally` text NOT NULL,
  `id_catalog` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;


Вот код:

  $query = "UPDATE enterprise SET 
                id=$id,
                name='$name',
                form='$form',
                create='$bithday',
                leader='$leader',
                bithday_leader='$l_bithday',
                activity='$activity',
                rewards='$rewards',
                adress='$adress',
                sity='$sity',
                phone='$phone',
                fax='$fax',
                email='$email',
                site='$site',
                additionally='$dopolnitelno',
                            WHERE id_catalog='$id_catalog'";

   
 
 автор: Faraon   (25.11.2007 в 02:56)   письмо автору
 
   для: Dizels   (24.11.2007 в 22:42)
 

а в чем проблема то?

   
 
 автор: Dizels   (25.11.2007 в 13:18)   письмо автору
 
   для: Faraon   (25.11.2007 в 02:56)
 

Выдает ошибку:

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 'create='7.2.2004', leader='Иванов Иван Иванович',

   
 
 автор: Dizels   (25.11.2007 в 18:01)   письмо автору
 
   для: Dizels   (25.11.2007 в 13:18)
 

?

   
 
 автор: morkovkin   (25.11.2007 в 18:19)   письмо автору
 
   для: Dizels   (25.11.2007 в 18:01)
 

id=$id - Добавить кавычки.
create - неправильный формат данных

   
 
 автор: Dizels   (25.11.2007 в 18:49)   письмо автору
 
   для: morkovkin   (25.11.2007 в 18:19)
 

1) кавычки поправил
2) в БД столбец create сделала типа TEXT, но ошибка все равно выскакивает(

   
 
 автор: morkovkin   (25.11.2007 в 18:52)   письмо автору
 
   для: Dizels   (25.11.2007 в 18:49)
 

Возможно, ошибка в чём то другом. Дайте более подробный код обновления бд.

   
 
 автор: Dizels   (25.11.2007 в 19:00)   письмо автору
 
   для: morkovkin   (25.11.2007 в 18:52)
 

<?php
// Устанавливаем соединение с базой данных
require_once("config.php");
// Проверяем, переданы ли скрытые поля формы
if(empty($id)) { echo "Не передана переменная предприятия";
         exit;
         }
if(empty(
$id_catalog)) { echo "Не передана переменная каталога";
         exit;
         }
// Проверяем, заполнены ли поля
if(empty($_POST['name'])) links("Введите название предприятия.");
if(empty(
$_POST['leader'])) links("Введите ФИО руководителя.");
if(empty(
$_POST['activity'])) links("Введите виды деятельности.");

// Получаем переменные и где надо заменяем одинарные кавычки на обратные
$form $_POST['form'];
$name str_replace("'","`",$_POST['name']);
$day $_POST['day']; 
$month $_POST['month']; 
$year $_POST['year']; 
$bithday $day.".".$month.".".$year;
$leader str_replace("'","`",$_POST['leader']);
$l_day $_POST['l_day']; 
$l_month $_POST['l_month']; 
$l_year $_POST['l_year']; 
$l_bithday $l_day.".".$l_month.".".$l_year;
$activity str_replace("'","`",$_POST['activity']);
$rewards str_replace("'","`",$_POST['rewards']);
$adress str_replace("'","`",$_POST['adress']);
$sity str_replace("'","`",$_POST['sity']);
$phone str_replace("'","`",$_POST['phone']);
$fax str_replace("'","`",$_POST['fax']);
$email str_replace("'","`",$_POST['email']);
$site str_replace("'","`",$_POST['site']);
$dopolnitelno str_replace("'","`",$_POST['dopolnitelno']);
if(empty(
$_POST['id_catalog']))$parent=0;
else 
$parent $_POST['id_catalog'];
$name str_replace("'","`",$_POST['name']);
// Формируем и осуществляем SQL-запрос на исправление страны
$query "UPDATE enterprise SET 
            id='
$id',
            name='
$name',
            form='
$form',
            create='
$bithday',
            leader='
$leader',
            bithday_leader='
$l_bithday',
            activity='
$activity',
            rewards='
$rewards',
            adress='
$adress',
            sity='
$sity',
            phone='
$phone',
            fax='
$fax',
            email='
$email',
            site='
$site',
            additionally='
$dopolnitelno',
                         WHERE id_catalog='
$id_catalog'";
if(
mysql_query($query))
  {
    
// В случае успеха, осуществляем автоматический переход на
    // страницу стран
    
echo "<HTML><HEAD>
           <META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>
           </HEAD></HTML>"
;
   }
   else 
echo 
mysql_error();
?>

   
 
 автор: morkovkin   (25.11.2007 в 19:49)   письмо автору
 
   для: Dizels   (25.11.2007 в 19:00)
 

Только что заметил запятую лишнюю:


additionally='$dopolnitelno', 
                         WHERE

   
 
 автор: Dizels   (25.11.2007 в 20:00)   письмо автору
 
   для: morkovkin   (25.11.2007 в 19:49)
 

все равно ругается :(

   
 
 автор: morkovkin   (25.11.2007 в 20:09)   письмо автору
 
   для: Dizels   (25.11.2007 в 20:00)
 

А на какую строчку ругается?

   
 
 автор: Dizels   (25.11.2007 в 20:12)   письмо автору
 
   для: morkovkin   (25.11.2007 в 20:09)
 


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 'create='10.2.2004', leader='Иванов Иван Иванович',

   
 
 автор: morkovkin   (25.11.2007 в 20:20)   письмо автору
 
   для: Dizels   (25.11.2007 в 20:12)
 

Возможно, ошибки в названиях ячеек(полей). Тоесть мускул путается, т.к. в нём эти названия заложены для других действий. Но я не уверен...
Тоесть попробуйте поменяйть названия полей в таблице.. например перед каждым поставить bd_***

   
 
 автор: retsoul   (25.11.2007 в 20:34)   письмо автору
 
   для: morkovkin   (25.11.2007 в 20:20)
 

совершенно верно
mysql указывает на ом, что используется неверное имя для столбца, а именно - команда create - в mysql - это зарезервированное слово и используется как команда

ещё наверно лучше будет указывать дату не как текст, а как дату, т.е. - тип не varchar, а date

   
 
 автор: Dizels   (25.11.2007 в 20:41)   письмо автору
 
   для: retsoul   (25.11.2007 в 20:34)
 

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

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования