"mysql_query" выдает совсем не то

imaster

Новичок
"mysql_query" выдает совсем не то

Помогите разобраться
Есть таблица
CREATE TABLE `pages` (
`Id` int(10) unsigned NOT NULL auto_increment,
`ParentId` int(10) unsigned NOT NULL,
`Children` tinyint(4) unsigned NOT NULL default '0',
`Type` tinyint(4) NOT NULL default '1',
`CreateDate` datetime NOT NULL default '0000-00-00 00:00:00',
`CreateUserId` int(10) NOT NULL default '0',
`ModifyDate` datetime NOT NULL default '0000-00-00 00:00:00',
`ModifyUserId` int(10) NOT NULL default '0',
`Mnemo` varchar(255) NOT NULL default '',
`Name` varchar(255) NOT NULL default '',
`Filename` varchar(255) NOT NULL default '',
`Content` text NOT NULL,
`Description` tinytext NOT NULL,
`IsVisible` tinyint(4) NOT NULL default '1',
PRIMARY KEY (`Id`),
UNIQUE KEY `Mnemo` (`Mnemo`)
) TYPE=MyISAM;

При вставке новой записи, mysql_query возвращает false.
Причем, проблема только с этим запросом, другие запросы работают нормально.
Вот запрос:
INSERT INTO pages (ParentId, Type, CreateDate, CreateUserId, ModifyDate, ModifyUserId, Name, Mnemo, Filename, Content, Description) VALUES ( '0', '1', '2005-10-20 15:16:15', '1', '2005-10-20 15:16:15', '1', 'Моя страница', 'my_page', '', 'Content', 'Desc')
 

imaster

Новичок
Я сейчас определил, что проблема совсем в другом.
PHP или я не знаю что, пытается выполнить запрос два раза.
В первый раз вставляет строку нормально, а при втором разе естественно выдает ошибку "Duplicate entry 'my_page' for key 2", не дает уник. индекс.
Запросы выполняет только одна функция, в этой функцие я вывожу все запросы на экран и выводится только один такой запрос. Это касается не только этого запроса, что это может быть ?
 

imaster

Новичок
Запросы выполняет только одна функция, в этой функцие я вывожу все запросы на экран и выводится только один такой запрос
 

Фанат

oncle terrible
Команда форума
ты можешь повторять это своё заклинание сколько угодно, но в решении проблемы это тебе не поможет.
 

imaster

Новичок
Спасибо, Panchous, за подсказку.
А как ты определишь такое поведение.

В функцие, где выполняется запрос ставлю sleep(1) - все работает нормально, только убираю - начинает вставлять сразу по две записи ?
 

Фанат

oncle terrible
Команда форума
чистый скрипт, который состоит только из коннекта к базе и выполнения этого запроса, вызывает такую ошибку?
 

imaster

Новичок
Нет, чистый скрипт работает :))
Извините, буду искать...

-~{}~ 21.10.05 10:16:

Я упростил код и после долгих поисков я все-таки нашел ошибку.
Может это всем известно, но я приведу пример неправильного кода.
...
<input type="submit" onclick="someFunction()">
...
<script language="Javascript">
function someFunction() {
document.someForm.submit();
}
</script>
....

При клике submit срабатывает дважды
 

SelenIT

IT-лунатик :)
если эта функция - проверка заполнения формы, то удобно делать так:
...
<input type="submit" onclick="return validate(this.form)">
...
<script language="Javascript">
function validate(некаяФорма) {
if (некаяФорма.чтоТоНеТак) {
alert (чтоИменноНеТак); return false;
}
return true
}
</script>
....
А еще удобнее и правильнее вешать return validate(this) не на кнопку, а на onsubmit самой формы.
 

KRON

Новичок
может он просто покажет что пишет в коде, а то как можно сказать человеку почему он дурак если он молчит))
 
Сверху