我有一个网站,里面有很多图片。目前我只是在服务器上有所有图片,我使用php获取目录中的文件,并在表格中显示所有文件。但是,当我这样做时,图片按字母顺序显示,我不想要。我希望它们显示我的插入时间。我以为我可以创建一个表,其中数字字段设置为自动递增,然后是插入图片的文件名。然后将图片留在服务器上。因此,每次插入图片时,都会插入一个带有数字和文件名的行。因此,当我显示时,我只显示那个数字描述,这应该给我最新插入的图片。这是最好的方法吗?
由于
答案 0 :(得分:2)
听起来不错。如果您真的想获得技术,可以使用时间戳字段并按顺序排序。但是,只要您在插入图像时自动增加,听起来您的想法就可以正常工作。
答案 1 :(得分:0)
你走在正确的轨道上。我使用时间戳(类型为DATETIME
)来确定图片上传的确切时间,并按此排序。递增ID并不总是与插入时间相对应。
答案 2 :(得分:0)
您可以通过auto_incremented id字段执行此操作,也可以存储时间戳并按此顺序排序。任何一个都是可以选择的,只需确保您避免潜在的主要密钥违规行为。
答案 3 :(得分:0)
使用filemtime()
,您可以获得文件的时间戳。因此,在使用(例如)uasort()
获取文件后,可以使用readdir()
或其他一个php排序函数定义排序。不需要数据库。
答案 4 :(得分:0)
在数据库中存储指向该文件的指针将是最好的方法,并将图像放在文件系统中。对于创建的日期,您可以使用DATETIME
跟踪创建的时间,然后按照您想要的顺序查询它们。
答案 5 :(得分:0)
我认为不需要这样做。在PHP中必须有一种方法来获取所有文件列表并按创建的日期排序。由于此文件将上传到您的服务器,因此date_created时间将是您服务器上创建的日期;因此,不需要新的表和数据库调用等。
答案 6 :(得分:0)
如果您计划在系统中安装数千(或更多)照片,则需要使用数据库表格存储元数据,同时将实际图像文件存储在硬盘驱动器上。
按日期对10,000个I / O匹配进行排序是很疯狂的。执行一个SQL查询以返回按日期排序的所有文件名的列表要好得多,因为MySQL可能能够将整个表放入内存中。
table image
{
id
user_id (if images belong to certain users)
path (the file system path and/or filename)
created (timestamp)
}