На сервер аяксом посылается команда создания новой записи. При получении ответа с idшником созданной записи сразу же посылается команда на удаление этой записи. Назад возвращается список оставшихся записей (для проверки):
// Удаляем
mysql_query("delete from `table` where `id` = '" . intval($id) . "'");
//Проверяем
$res = mysql_query("select `id` from `table`" );
$test = array();
while ($row = mysql_fetch_assoc($res)) {
$test[] = array(
'id' => $row['id'],
);
}
echo json_encode(.'удаляем '.$id.', остается '.print_r($test,true));
Команды на добавление (и последующее удаление) поступают практически одновременно. В итоге получаем такой ответ:
удаляем 2367, остается Array
(
[0] => Array
(
[id] => 2368
)
[1] => Array
(
[id] => 2369
)
)
удаляем 2369, остается Array
(
[0] => Array
(
[id] => 2368
)
)
удаляем 2368, остается Array
(
)
Вроде все правильно. Но если посмотреть в БД, окажется, что записи 2368, 2369 остались невредимыми! Т.е. фактически всегда удаляется только одна запись. Полнейший бред! Даже если предположить, что первый ответ пришел от последнего удаления, а остальные просто опоздали (причем в 100% случаев), то все равно фигня какая-то. Что может быть? Глюк mySQL?