数据库:
表:新闻
使用列:唯一键和主键,它们会自动递增,称为 ID、内容和标题
代码:
-> 创建一个带有文本字段的表单,用户可以在其中输入他的 ID 值,从而输入项目的位置
$form->textField("Position of the item item", "id", false, 30, false, getIfExists("id", $originalValues));
-> 将新 ID 作为查询发布到数据库
$queryvalues["id"] = $_POST[ "id" ];
当我发布另一个项目未使用的 ID 时,它可以工作。但是,如果我尝试覆盖一个 ID,它会给我一个错误并且不会改变任何东西。显然,我需要更新 ID,以便增加所有冲突的 ID,从而允许发布编辑后的 ID。
我对如何做到这一点有点恼火。我的想法是添加一个定义位置的索引号,然后切换到使用数据库 ID 对列表进行排序,并在 CMS 中更改 ID 将能够在 CMS 用户希望时更新它。
但是,我不太确定如何解决这个问题以及是否有更好的选择/解决方案。
有没有人有任何想法/提示/提示?
我试过使用 ON DUPLICATE KEY UPDATE,但到目前为止我还没有运气。
编辑:
好的,现在可以订购了。我创建了一个名为 Position 的新列,并用它来订购物品,它工作正常。
但是,如果我添加一个具有相同位置的新项目,它将把它放在另一个位置下。所以基本上新的“0”列在旧的“0”下,同时共享相同的密钥。对于如何解决这个问题,有任何的建议吗?我正在考虑增加旧的重复键。但不知道这将如何运作。