我有一个连接到 mysql 数据库的站点。我有与图片相对应的项目(在数据库中列出)。数据库结构为:
Item_num Description Price Available
Item_num 是唯一的字母数字 (A001)。 在我的图像文件夹中,我有几张 A001 的照片,标记为:
A001_full.jpg
A001_thumb.jpg
A001_model.jpg
这是相当一致的。有些图片没有 _model 版本,但都有 _thumb 和 _full 版本。不幸的是,我添加了一堆图片然后放弃了该网站。当我将其重新联机时,其中很多图片都没有与之匹配的 SQL 条目。我想做的是:
- 导入图像的目录列表 (../images)
- 捕获文件名的第一部分(在 '_' 之前),为此考虑 strtok
- 使用该 token 查询数据库中的 Item_num 键
- 如果找到那个键,移动到下一个文件
- 如果找不到该 key ,则将 token 输出到页面
我真的不确定目录列表以及如何处理它,以及如何对数据库运行多个重复查询。我习惯于运行一个查询,然后使用该查询的结果。对此的任何帮助将不胜感激
最佳答案
您实际上可以使用单个查询来执行此操作,然后循环遍历结果。这比每个条目运行一个查询要快。像这样:
$query = "SELECT Item_num FROM table";
然后我们假设您已将结果转储到一个索引数组中,其中每个元素是每行的 Item_num
值到 $result
(创建的细节这个数组可能取决于你如何与数据库交互):
// Loop through all images
foreach ( glob( '../images/*' ) as $image ) {
// Get the portion of the name before the underscore
list( $image_item ) = explode( '_', $image );
// Compare this to all of the return values
if ( !in_array( $image_item, $result )) {
// The image is not in the database
}
}
关于php - 在网站结构中找到 "orphan"文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31711344/