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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Ошибка 1064 при добалвении записи в Базу MySQL.

Сообщения:  [1-10]   [11-19] 

 
 автор: kolobokk   (07.06.2006 в 15:30)   письмо автору
 
   для: tAleks   (07.06.2006 в 14:27)
 

ну первое что бросается в глаза - зачем вы делаете средствами PHP то что проще использовать в MySQL параметром DEFAULT

CREATE TABLE 'price_product' ( 
  'id_product' int(8) NOT NULL auto_increment, 
  'stock' char(4) default NULL, 
  'name' tinytext, 
  'colvo' smallint(6) default NULL, 
  'description' tinytext, 
  'vp' decimal(7,2) NOT NULL default '1,00',
  'base_price' decimal(7,2) NOT NULL default '1,00', 
  'base_vozn' decimal(7,2) NOT NULL default '1,00',
  'price_50' decimal(7,2) NOT NULL default '1,00', 
  'price_42' decimal(7,2) NOT NULL default '1,00', 
  'price_35' decimal(7,2)  NOT NULL default '1,00', 
  'price_25' decimal(7,2)  NOT NULL default '1,00', 
  'price_100' decimal(7,2)  NOT NULL default '1,00', 
  'pos' smallint(3) default '0', 
  'hide' enum('show','hide') default 'show', 
  'id_catalog' int(8) default NULL, 
  'url' tinytext, 
  PRIMARY KEY  ('id_product'), 
  KEY 'id_catalog' ('id_catalog'), 
  KEY 'stock' ('stock') 
) ENGINE=MyISAM DEFAULT CHARSET=cp1251; 

в этом случае вам не прийдется проверять необязательные для заполнения данные

и второе - необходимо проверить обязательно передается ли значение $_POST['id_catalog'], $stock - они у вас ключевые

   
 
 автор: tAleks   (07.06.2006 в 14:27)   письмо автору
 
   для: kolobokk   (07.06.2006 в 12:34)
 

>вы ошиблись - дали структуру таблицы 'price_catalog' а не
>price_product :(

Упс.... действительно ошибся.


CREATE TABLE 'price_product' (
  'id_product' int(8) NOT NULL auto_increment,
  'stock' char(4) default NULL,
  'name' tinytext,
  'colvo' smallint(6) default NULL,
  'description' tinytext,
  'vp' decimal(7,2) default NULL,
  'base_price' decimal(7,2) default NULL,
  'base_vozn' decimal(7,2) default NULL,
  'price_50' decimal(7,2) default NULL,
  'price_42' decimal(7,2) default NULL,
  'price_35' decimal(7,2) default NULL,
  'price_25' decimal(7,2) default NULL,
  'price_100' decimal(7,2) default NULL,
  'pos' smallint(3) default '0',
  'hide' enum('show','hide') default 'show',
  'id_catalog' int(8) default NULL,
  'url' tinytext,
  PRIMARY KEY  ('id_product'),
  KEY 'id_catalog' ('id_catalog'),
  KEY 'stock' ('stock')
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

   
 
 автор: cheops   (07.06.2006 в 12:36)   письмо автору
 
   для: tAleks   (06.06.2006 в 22:47)
 

А между проверкой и кодом, формирующим SQL-запрос есть что-то ещё? Не могут они подвергаться изменению? Попробуйте выводить
<?php
  
echo "price_50 - ".$price_50."<br>";
?>

спускаясь по коду с проверки к SQL-запросу - на каком этапе происходит сбой?

PS Посмотрите также нет ли у вас лишних пробелов в value-значениях HTML-формы.

   
 
 автор: kolobokk   (07.06.2006 в 12:34)   письмо автору
 
   для: tAleks   (07.06.2006 в 11:57)
 

вы ошиблись - дали структуру таблицы 'price_catalog' а не price_product :(

   
 
 автор: tAleks   (07.06.2006 в 12:15)   письмо автору
 
   для: valenok   (07.06.2006 в 07:40)
 

>Это вот то ты назвал проверкой ->
>if(empty($_POST['num'])) $num=1; ........
>и так далее?
>
>напиши echo "&lt;PRE>"; print_r($_POST);
>Где нибудь в начале скрипта и посмотри что у тебя там...

Да, а чем тебе эта проверка не нравиться? Если знаешь более надежный и лучший способ - поедись.... буду благодарен.....

   
 
 автор: tAleks   (07.06.2006 в 11:57)   письмо автору
 
   для: kolobokk   (07.06.2006 в 09:53)
 

>Приведите пож-та структуру таблицы price_product
>будет гораздо проще разобраться.

CREATE TABLE 'price_catalog' (
'id_catalog' int(8) NOT NULL auto_increment,
'name' tinytext,
'description' tinytext,
'pos' smallint(3) default '0',
'hide' enum('show','hide') default 'show',
'warning' enum('hide','show') default 'hide',
'url_warning' tinytext,
PRIMARY KEY ('id_catalog')
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=12 ;

   
 
 автор: tAleks   (07.06.2006 в 11:53)   письмо автору
 
   для: Trianon   (07.06.2006 в 09:45)
 

Эти пеерменные передаются из формы POST.

Потом, если $_POST['base_vozn'] пустая, т.е. в форме не забили, то $base_vozn присваивается значение.

   
 
 автор: Trianon   (07.06.2006 в 10:52)   письмо автору
 
   для: kadet_73   (07.06.2006 в 10:20)
 

Городить огород есть смысл.
Хотя бы потому, что корректно написанная строка должна выглядеть так:
"..... stock = '". mysql_escape_string($stock) ."', ....."
Только спрашивать это имело смысл в отдекльной теме, дабы не отвлекать народ от решения исходной проблемы.

   
 
 автор: kadet_73   (07.06.2006 в 10:20)   письмо автору
 
   для: Trianon   (07.06.2006 в 10:03)
 

Да просто интересно зачем городить огород, когда можно написать проще как это говорит Kolobokk

   
 
 автор: Trianon   (07.06.2006 в 10:03)   письмо автору
 
   для: kadet_73   (07.06.2006 в 09:59)
 

А что в этом плохого? В любом случае, этот стиль написания ошибку не вызывает.

   

Сообщения:  [1-10]   [11-19] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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