2015-10-19 65 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 –