什么是最好的方式来操纵数据库中条目的方式显示在我的网页上?
问题描述:
我有一个客户,我正在为此构建一个小型CMS。其中一个功能是他希望能够选择图像在页面上显示的顺序。什么是最好的方式来操纵数据库中条目的方式显示在我的网页上?
在我的MySQL数据库我有一个与领域称为image_info表:
指数(自动递增)
img_url
img_link
我想增加一个额外的领域被称为img_order这将是一个int,我会参考排序返回到我的PHP脚本的数据。
我不确定这是否是最好的方法。我觉得我不得不重新编号数据库中的每个条目,只是为了在列表中向上或向下移动一个图像。
是否有这种类型的功能的标准程序?
感谢, -J
答
我认为,加入img_order
列是最简单的方式,它不会很难被重新编号字段。举例来说,如果你在img_order
15位添加图片,只需用该值插入,然后运行以下查询:
update image_info set img_order = img_order + 1 where img_order >= 15;
如果要删除现有的图像,你必须降低
update image_info set img_order = img_order - 1 where img_order >= 15;
而且如果你从一个位置移动图像到另一个,你必须递增img_order
原始和新位置之间的所有图像:
img_order
值的所有图片
update image_info set img_order = img_order + 1 where
img_order between (least($old_img_order, $new_img_order),
greatest($old_img_order, $new_img_order));
答
您将不得不重新编号每个位置的变化。但算法不太复杂,你可以在两个查询中完成。