如果插入数据库的新值与数据库中的值冲突,如何将值更新为1?

时间:2013-11-30 13:29:04

标签: php mysql database

如果插入数据库的新值与数据库中已存在的值冲突,我想更新排序顺序列的数据库,将其值增加1。我可以知道我应该怎么做吗?请帮忙!谢谢! 下面是我的代码(我不确定我是否在正确的轨道上):

$result = mysql_query("SELECT sortorder FROM information ORDER BY id ASC;");
if($result >= 1 ){                     
    $i=1;

    while ($initialorder = mysql_fetch_assoc($result))    
    {
        $initialorder = $initialorder["sortorder"];                          
        if ($sortorder == $initialorder ){
          $result6 = mysql_query("SELECT * FROM information 
               WHERE `sortorder` = '$sortorder'"); 

          $row6 = mysql_fetch_array($result6);        
          $removethis1 = $row6['id'];    
          $result7 = mysql_query("UPDATE information 
              SET `sortorder`= ((SELECT `sortorder` 
                  FROM (SELECT MAX(`sortorder`) AS 
                 '$initialorder' FROM information) AS '$initialorder') + 1) 
              WHERE id='$removethis1'");
    }                         

    $query = "INSERT INTO `information`                  
      (`id`,`page`,`description`,`status`,`sortorder`,`keyword`,`date_added`) 
       VALUES 
      ('$id','$title','$description','$status',
       '$sortorder','$keyword','$date_added')";

    $result = mysql_query($query, $conn);
    header('Location: index.php?status=1&title='.$title);

    $i++;  }

    }

1 个答案:

答案 0 :(得分:0)

你可以这样做:

INSERT INTO ON `information`
...
DUPLICATE KEY UPDATE
  sortorder = '".$sortorder + 1." '