У меня есть построенная таблица MYSQL, в которой есть таблица с обратным отсчетом времени, так что, когда один пользователь берет ресурс, значение в таблице уменьшается на 1, в конечном итоге сводится к нулю.Мой код ниже.
Проблема в том, что когда у меня есть несколько пользователей, получающих доступ к сайту и уменьшающих таблицу, мы достигаем точки, где он должен остановиться на нуле, однако ему удается уменьшить значение ниже нуля и перейти в минус числа.
Я думал, применяя блокировку таблицы (код ниже), система перестанет работать ниже нуля.кажется, что блокировка не блокирует стол.похоже, что другие пользователи также имеют блокировку на столе.У кого-нибудь есть идеи по этому поводу?Кроме того, есть ли у кого-нибудь идеи о том, как я это проверю?
Спасибо P
//Lock Tables
$query2 = "LOCK TABLES $_GET[ModuleCode]_students WRITE";
sql_function($query2);
$query = "insert into $_GET[ModuleCode]_students (Qualification,StudentNo,StudentSurname,StudentForename,StudentEmail,Grp,regesterTime) values ('$_POST[Qualification]','$_POST[StudentNo]','$_POST[StudentSurname]','$_POST[StudentForename]','$_POST[StudentEMail]','$_POST[mygroup]',NOW())";
sql_function($query);
//check the number of places left with the lock on so it won't allow input into the table if at zero
calc_placesleft();
write_results($_POST[StudentNo],$_GET[ModuleCode],$_POST[mygroup]);
Release lock on table $_GET[ModuleCode]
$query3 = "UNLOCK TABLES";
sql_function($query3);