php pdo递减高于删除值的值

时间:2017-03-28 09:52:26

标签: php mysql sql pdo

您好我有点卡在这个问题上,任何人都可以伸出援助之手。我有一个表,其中列有一个位置,用于对它们进行排序,我要做的是当单击删除按钮一行时,行的位置值高于被删除的行以减少。如此

 //   1
 //   2 //now we delete this 
 //   3
 //   4
 //   and this get's updated with this
 //    1
 //    2
 //    3

<?php 
require_once('connect.php');
$name = get_option('selectedSlide');
$position = get_option('selectedSlideId'); 
    try{
        global $db;
        if(!get_option('selectedSlide')){
        $error.="No slide selected.";
        echo $error; die;
        }
        else{
        $inserts = $db->prepare("DELETE FROM slider_images WHERE slider_image_name = :names");
        $inserts->bindParam(':names', $name);
        $inserts->execute();
        $incrementAllBehindDeleted = $db->prepare("SELECT slider_image_position FROM slider_images WHERE slider_image_position>:position");
        $incrementAllBehindDeleted->bindParam(':position', $position);
        $incrementAllBehindDeleted->execute();
        die;
        }
    }
    catch(Exception $e){
        echo $e->getMessage();
        exit;
    }
?>

1 个答案:

答案 0 :(得分:0)

一般来说,我同意Niet the Dark Absol的评论,即只要数字的顺序正常,你就不必担心差距。

但是,如果你坚持下去,那么我只是简单地进行更新而不选择减少后续图像的位置:

UPDATE slider_images SET slider_image_position=slider_image_position-1 WHERE slider_image_position>:position

但是,如果您有多个图像滑块,则必须在更新的where子句中包含图像滑块的标识符,这些图像正在重新排序。