ss25_satana
Новичок
Блокирование строки на время изменения
есть функция редактирования она запрашивает нужную мне строку из таблицы на редактирование
function sale_edit() {
global $db;
$id = $_GET['id'];
include("header.php");
$res = $db->sql_query("SELECT * FROM sale WHERE id='$id'");
$row = $db->sql_fetchrow($res);
echo "<form action=\"admin.php\" method=\"post\" style=\"display: inline\">";
echo "<b>Изменение производителя</b>";
echo "<table width=\"100%\" cellpadding=\"3\" cellspacing=\"1\" border=\"0\" bgcolor=\"#efefef\">\n"
."<tr><td>Наименование</td><td>Адрес</td><td>Телефон</td><td>Доп. телефон</td></tr><tr>\n"
."<input type=\"hidden\" value=\"$id\" name=\"id\">\n"
."<td width=\"30%\" bgcolor=\"#FFFFFF\"><input value=\"$row[name]\" style=\"width=100%\" name=\"name\" size=\"10\" type=\"TEXT\"></td>\n"
."<td width=\"30%\" bgcolor=\"#FFFFFF\"><input value=\"$row[adress]\" style=\"width=100%\" name=\"adress\" size=\"10\" type=\"TEXT\"></td>"
."<td bgcolor=\"#FFFFFF\"><input value=\"$row[tel0]\" style=\"width=100%\" name=\"tel0\" size=\"10\" type=\"TEXT\"></td>"
."<td bgcolor=\"#FFFFFF\"><input value=\"$row[tel1]\" style=\"width=100%\" name=\"tel1\" size=\"10\" type=\"TEXT\"></td></tr>\n"
."<tr><td><input type=\"hidden\" name=\"go\" value=\"item\">\n"
."<input type=\"hidden\" name=\"in\" value=\"sale_save_edit\">\n"
."<input type=\"submit\" value=\"Изменить\"></td></tr>\n";
echo "</table><form>";
include("footer.php");
}
и есть функция сохранения изменений
function sale_save_edit() {
global $db;
$id = $_POST['id'];
$name = $_POST['name'];
$adress = $_POST['adress'];
$tel0 = $_POST['tel0'];
$tel1 = $_POST['tel1'];
$db->sql_query("UPDATE sale SET name='$name', adress='$adress', tel0='$tel0', tel1='$tel1' WHERE id='$id'");
Header("Location: admin.php?go=item&in=sale_list");
}
подскажите можна ли вообще заблокировать конкретную строку в таблице (тип таблицы MyISAM)
блокировка всей таблицы не желательна так как между запросом на изменение и сохраненнеим изменений может пройти значительное время и эта строка не долна быть доступна для изменения другими пользователями а только тому кто ее открыл на изменение
есть функция редактирования она запрашивает нужную мне строку из таблицы на редактирование
function sale_edit() {
global $db;
$id = $_GET['id'];
include("header.php");
$res = $db->sql_query("SELECT * FROM sale WHERE id='$id'");
$row = $db->sql_fetchrow($res);
echo "<form action=\"admin.php\" method=\"post\" style=\"display: inline\">";
echo "<b>Изменение производителя</b>";
echo "<table width=\"100%\" cellpadding=\"3\" cellspacing=\"1\" border=\"0\" bgcolor=\"#efefef\">\n"
."<tr><td>Наименование</td><td>Адрес</td><td>Телефон</td><td>Доп. телефон</td></tr><tr>\n"
."<input type=\"hidden\" value=\"$id\" name=\"id\">\n"
."<td width=\"30%\" bgcolor=\"#FFFFFF\"><input value=\"$row[name]\" style=\"width=100%\" name=\"name\" size=\"10\" type=\"TEXT\"></td>\n"
."<td width=\"30%\" bgcolor=\"#FFFFFF\"><input value=\"$row[adress]\" style=\"width=100%\" name=\"adress\" size=\"10\" type=\"TEXT\"></td>"
."<td bgcolor=\"#FFFFFF\"><input value=\"$row[tel0]\" style=\"width=100%\" name=\"tel0\" size=\"10\" type=\"TEXT\"></td>"
."<td bgcolor=\"#FFFFFF\"><input value=\"$row[tel1]\" style=\"width=100%\" name=\"tel1\" size=\"10\" type=\"TEXT\"></td></tr>\n"
."<tr><td><input type=\"hidden\" name=\"go\" value=\"item\">\n"
."<input type=\"hidden\" name=\"in\" value=\"sale_save_edit\">\n"
."<input type=\"submit\" value=\"Изменить\"></td></tr>\n";
echo "</table><form>";
include("footer.php");
}
и есть функция сохранения изменений
function sale_save_edit() {
global $db;
$id = $_POST['id'];
$name = $_POST['name'];
$adress = $_POST['adress'];
$tel0 = $_POST['tel0'];
$tel1 = $_POST['tel1'];
$db->sql_query("UPDATE sale SET name='$name', adress='$adress', tel0='$tel0', tel1='$tel1' WHERE id='$id'");
Header("Location: admin.php?go=item&in=sale_list");
}
подскажите можна ли вообще заблокировать конкретную строку в таблице (тип таблицы MyISAM)
блокировка всей таблицы не желательна так как между запросом на изменение и сохраненнеим изменений может пройти значительное время и эта строка не долна быть доступна для изменения другими пользователями а только тому кто ее открыл на изменение