2015-10-19 104 views
-1

我想更新mysql表,但只有一次。如果您想再次更新它,它應該給消息「ID已被使用,請登錄」php mysql更新表一次

<?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"); 
} 
} 

?> 
+0

那麼,什麼問題,任何錯誤,...? – Naruto

+0

添加另一列,用於標識已被編輯或已編輯的行。 –

+0

您可以使用'lastInsertId();' –

回答

1

我想你應該增加一個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()); 
} 
+0

在我的代碼示例中顯示在哪裏放置你的建議以便於理解 –

+2

這是檢查更新@Mr Neo的最佳解決方案。但爲什麼你問我的代碼顯示#lgbeh ...它不是免費的編碼寫作服務...嘗試你的自我,如果有任何問題,然後問... –

+0

@Mak,我已經盡了全力,甚至粘貼了我的工作代碼。此外,這是一個相互學習的地方,而不是一個侮辱或鄙視他人的地方,所以如果你沒有提供任何東西,然後讓別人給他們的投入,請撥打 –

0
<?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」通過新先生的建議,並與上面的代碼替換代碼。

+0

我已經做了一切正確的事,因爲你已經顯示,但腳本仍然更新表甚至因爲number_update字段已被更新爲1,並再次默認爲0值 –

+0

請檢查$ test [「number_update」]值嗎? –

+0

@MrNeo,我該如何檢查? '$ test [「number_update」]在表 –

0

應該有一個記錄每個表的更新的日誌表。如果該記錄發現系統應該阻止該特定記錄的進一步更新。

<?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 
    } 
    } 
    ?> 
+0

@Mhammad Muazzam,那麼代碼檢查重複條目並提醒用戶該引腳或ID已被使用? –

+0

我提供了提示。你可以自己寫下代碼。 –

+0

它確實有效。它仍然接受depulicates –