您好我有点卡在这个问题上,任何人都可以伸出援助之手。我有一个表,其中列有一个位置,用于对它们进行排序,我要做的是当单击删除按钮一行时,行的位置值高于被删除的行以减少。如此
// 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;
}
?>
答案 0 :(得分:0)
一般来说,我同意Niet the Dark Absol的评论,即只要数字的顺序正常,你就不必担心差距。
但是,如果你坚持下去,那么我只是简单地进行更新而不选择减少后续图像的位置:
UPDATE slider_images SET slider_image_position=slider_image_position-1 WHERE slider_image_position>:position
但是,如果您有多个图像滑块,则必须在更新的where
子句中包含图像滑块的标识符,这些图像正在重新排序。