Возникла следующая проблема. При выполнении запроса $q="INSERT INTO plant_connector (plant_connector_id,child_id,parent_id) VALUES ('','$plant_id','$value')" в поле "parent_id" ВСЕГДА пишется 0. Если же выводить этот запрос на экран, то $value - целое НЕНУЛЕВОЕ число(т.е. примерно так $q="INSERT INTO plant_connector (plant_connector_id,child_id,parent_id) VALUES ('','6','5')"), а реально в БД пишется 0. Преобразование $value к int ничего не изменило. Причем в "child_id" все записывается правильно, а тип у "parent_id","child_id" - int. Большая просьба помочь!!!!
Простейший способ определить, косяк это вашего приложения или все-таки таинственный глюк БД: $q="INSERT INTO plant_connector (plant_connector_id,child_id,parent_id) VALUES ('','$plant_id','".($value+1)."')" Если будет записываться единица, значит все-таки вы где-то напутали в скрипте.
CREATE TABLE plant_connector ( plant_connector_id int auto_increment NOT NULL, child_id int, parent_id int, PRIMARY KEY (plant_connector_id) ); ------------------------------------------------------------ Результаты plant_connector_id child_id parent_id 42 4 0 3 2 0 8 3 0
а если ручечками выполнить PHP: INSERT INTO plant_connector(child_id,parent_id) VALUES (77,99) что будет?
INSERT INTO plant_connector(child_id,parent_id) VALUES ('$plant_id','777') - результат тот же. INSERT INTO plant_connector(child_id,parent_id) VALUES ('123','777')-записываются правильные значения
Когда вывожу на экран запрос INSERT INTO plant_connector (plant_connector_id,child_id,parent_id) VALUES ('','$plant_id','$value'), то имеем INSERT INTO plant_connector (plant_connector_id,child_id,parent_id) VALUES ('','10','2')
Запрос INSERT INTO plant_connector(child_id,parent_id) VALUES ('700','$value') устанавливает child_id - 700,parent_id - нормальное значение[/u]
nat русским же языком сказали - ПОКАЖИ ЗАПРОС ПЕРЕД ВЫПОЛНЕНИЕМ? не примеры, которые тут приводишь, а САМ ЗАПРОС в том виде, в котором он передается в mysql_query();
$q="INSERT INTO plant_connector (plant_connector_id,child_id,parent_id) VALUES ('','$plant_id','$value')";
nat взял твой CREATE и прогнал там 2 раза твой запрос - все работает это дамп. Код (Text): CREATE TABLE `plant_connector` ( `plant_connector_id` int(11) NOT NULL auto_increment, `child_id` int(11) default NULL, `parent_id` int(11) default NULL, PRIMARY KEY (`plant_connector_id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3 ; -- -- Дамп данных таблицы `plant_connector` -- INSERT INTO `plant_connector` (`plant_connector_id`, `child_id`, `parent_id`) VALUES (1, 10, 2), (2, 10, 2); а ты УВЕРЕН что не работает?
В том то и фикус, что этот запрос в БД работает нормально, а из РНР выполняется ЧАСТИЧНО правильно,т.е. в одно числовое поля записывает 0 вместо числа.
Перед выполнением запроса стоит print $q,а INSERT INTO plant_connector (plant_connector_id,child_id,parent_id) VALUES ('','10','2') - это результат.
nat Честно - я с таким раньше никогда не сталкивался. Зайди в phpMyAdmin и выполни там этот запрос "руками". Что произойдет? Такое ощущение, что запрос у тебя отрабатывает правильно и добавляется значение как надо... а потом затирается другим запросом. Попробуй поставить die() сразу после этого злосчастного mysql_query().
Ситуация такая. При создании plant запрос $q работает корректно. Когда я выполняю ЭТОТ ЖЕ запрос, но при редактировании plant(тот же код выполняется ниже), то получается такой эффект. У меня это было уже в двух различных БД. Относительно phpMyAdmin - там все нормально, а вот из РНР правильно записываться не хочет
ЗНачит чисто логическая ошибка в скрипте. После этого запроса у тебя выполняеться ещё какой-то запрос, который затирает то что ты вставил.
Действительно, ниже была строка, которая переписывала значения. Код большой-вот и не бросалася в глаза. ОГРОМНОЕ ВСЕМ СПАСИБО!!!!!!!!