我有一个MYSQL照片库数据库; 每行包含一个字段,其中包含该库中包含的图像列表,例如:
1,5,134,13,5
这些是照片的ID.相同的image_id可以包含在其他画廊中.
当我删除照片时,我需要从包含它的图库中删除相应的ID.在PHP中执行此操作的最佳方法是什么?
我想把EXPLODEing字段放到一个数组中,删除值然后IMPLODE返回并更新数据库,但我很确定有更好的方法吗?
谢谢,帕特里克
感谢Galen和所有人.
我是一个新手,对标准化不太了解(=任何事情).如果我理解正确,你建议有2个表:1表示有关照片的所有信息(例如,image_id,名称,标题等),另一张表只有一张使用该照片的画廊列表,例如:
gallery_id | image_id
1 3
1 7
1 5
2 3
2 8
Run Code Online (Sandbox Code Playgroud)
所以通过从这个表中删除WHERE image_id = 3,我会从两个画廊中删除该照片.但是,在这种情况下,我会管理照片的顺序吗?有一个字符串允许我有一个有序的照片列表.
Gal*_*len 10
这就是您规范表格的确切原因.然后你可以运行查询
delete from images where image_id=5;
delete from imageXgallery where image_id=5;
Run Code Online (Sandbox Code Playgroud)
图像表包含所有图像信息.imageXgallery表只包含图像到图库引用.
我建议您阅读规范化并更新表格.
编辑:要允许图像排序order,请在imageXgallery表中添加一个字段.从表中检索图像时,您可以按该列进行排序.