Я хочу обновить таблицу mysql, но только один раз. Если вы хотите обновить его снова, он должен указать сообщение «ID уже в использовании, логин Pls»,
<?php If(isset($_POST['login'])){ $Pin=$_GET['pin']; $ID =$_POST['ID']; if($Pin!=''){ $result = mysql_query("SELECT * FROM pin WHERE Pin = '$Pin'"); $test = mysql_fetch_array($result); mysql_query("UPDATE pin SET appid ='$num' WHERE Pin= '$Pin'") or die(mysql_error()); header("location:compet_applicant.php"); } } ?>
Я думаю, вы должны сначала добавить еще одно field
: number_update
в свою таблицу pin
. Значение по умолчанию – 0
Первое обновление, оно будет иметь значение 1
и вы можете проверить, что это значение, если оно равно 1
, будет вызывать ID Already in Use, Pls login
. Если оно равно 0
, разрешите обновить
$result = mysql_query("SELECT * FROM pin WHERE Pin = '$Pin'"); $test = array(); while ($row = mysql_fetch_array($result)) { $test[] = array_map('utf8_encode', $row); } if($test["number_update"] == 1) { //Checking already updated //Notify user that they have already updated } else { mysql_query("UPDATE pin SET appid ='$num' WHERE Pin= '$Pin'") or die(mysql_error()); }
Должна быть таблица журналов, которая записывает каждое обновление таблиц. Если запись найдена, система должна предотвратить дальнейшее обновление для этой конкретной записи.
<?php If(isset($_POST['login'])){ $Pin=$_GET['pin']; $ID =$_POST['ID']; if($Pin!=''){ $update_count = mysql_query("SELECT * FROM Audit_Table_Update WHERE Field_name = 'Pin' and field_value='$pin'); if(!mysql_num_rows($update_count)){ $result = mysql_query("SELECT * FROM pin WHERE Pin = '$Pin'"); $test = mysql_fetch_array($result); mysql_query("UPDATE pin SET appid ='$num' WHERE Pin= '$Pin'") or die(mysql_error()); mysql_query("INSERT INTO AUDIT_TABLE_UPDATES (TABLE_NAME, FIELD_NAME, FIELD_VALUE,TIME_UPDATED) VALUES('Pin','appid',$num,systemtime)") or die(mysql_error()); header("location:compet_applicant.php"); } // end if update count } } ?>
в<?php If(isset($_POST['login'])){ $Pin=$_GET['pin']; $ID =$_POST['ID']; if($Pin!=''){ $update_count = mysql_query("SELECT * FROM Audit_Table_Update WHERE Field_name = 'Pin' and field_value='$pin'); if(!mysql_num_rows($update_count)){ $result = mysql_query("SELECT * FROM pin WHERE Pin = '$Pin'"); $test = mysql_fetch_array($result); mysql_query("UPDATE pin SET appid ='$num' WHERE Pin= '$Pin'") or die(mysql_error()); mysql_query("INSERT INTO AUDIT_TABLE_UPDATES (TABLE_NAME, FIELD_NAME, FIELD_VALUE,TIME_UPDATED) VALUES('Pin','appid',$num,systemtime)") or die(mysql_error()); header("location:compet_applicant.php"); } // end if update count } } ?>
<?php if (isset($_POST['login'])) { $Pin = $_GET['pin']; $ID = $_POST['ID']; if ($Pin != '') { $result = mysql_query("SELECT * FROM pin WHERE Pin = '$Pin'"); $test = array(); while ($row = mysql_fetch_array($result)) { $test[] = array_map('utf8_encode', $row); } if ($test["number_update"] == 1) { //Checking already updated //Notify user that they have already updated } else { mysql_query("UPDATE pin SET appid ='$num',number_update = 1 WHERE Pin= '$Pin'") or die(mysql_error()); } header("location:compet_applicant.php"); } } ?>
Добавьте еще одно поле «number_update» в таблицу базы данных, предложенное г-ном Нео, и замените код кодом выше.