Помогите, пожалуйста. Никогда с таким не встречался. Проблема в том что с ajax отправляется запрос на сервер, с определенным $_POST['num'], ему по этому номеру выдается товар(ы). Сами они хранятся построчно и распарсить не проблема, но вот с точки зрения защиты произошла трабла - если скрипт одновременно запустить, то он выдаст столько же раз, сколько одновременных запусков. Пробовал в temp таблице создавать временную запись делать, что текущий номер в обработке - бесполезно.
//Проверяем на то, существует ли заказ с номером из POST
for($i=0; $i<sizeof($array['data']); $i++){
$sum = $array['data'][0]['sum']['amount'];
$comment = $array['data'][0]['comment'];
$status = $array['data'][0]['status'];
if(($order['amount'] == $sum or $sum > $order['amount']) and $order['rand'] == $comment and $status == 'SUCCESS'){
$size = intval($order['size']);
$order_number = $order['number'];
$order_random = $order['rand'];
$db->Query("SELECT * FROM `product` WHERE `id`='$order_number'");
$product = $db->FetchArray();
$output = $product['link'];
$output_array = explode(PHP_EOL, $output); //Разбиваем строку
for ($j=0; $j<$size; $j++){
$data .= $output_array[$j]; // Выводим пользователю товары в N количестве
unset($output_array[$j]); // Удаляем их из массива
}
$input = implode(PHP_EOL, $output_array); // И потом записываем в строку
$db->Query("UPDATE `product` SET `link`='$input' WHERE `id`='$order_number'");
$db->Query("DELETE FROM `order` WHERE `rand`='$order_random'"); //Удаляем номер заказа
$product_name = $product['name'];
$product_date = time();//date("F j, Y, g:i a");
$db->Query("INSERT INTO `sold` (`product`, `how`, `date`, `price`, `code`, `extract`) VALUES ('$product_name', '$size', '$product_date', '$sum', '$order_random', '$data')");
$fail = 1;
break;
}
}