我这里的情况相当复杂。如果不将 SELECT 查询放在一个循环中,当我进入该页面时,我找不到更好的方法来解决这个问题(别担心,我使用array_chunk
将数组拆分为页面)。如果我在这里使用查询,我想这将是一个资源杀手。正因为如此,我在这里,问一个问题。
我有一个需要循环的大数组:
$images = scandir($imgit_root_path . '/' . IMAGES_PATH);
$indexhtm = array_search('index.htm', $images);
unset($images[0], $images[1], $images[$indexhtm]);
现在我有一个数组,其中包含我的IMAGES_PATH
. 现在问题来了:
其中一些图像已在数据库中注册,因为注册用户的图像已列在我的数据库中。现在我需要user_id
根据上面数组给我的图像名称来检索。
在一个循环中,我只是这样做了:
foreach ($images as $image_name)
{
$query = $db->prepare('SELECT user_id FROM imgit_images WHERE image_name = :name');
$query->bindValue(':name', $image_name, PDO::PARAM_STR);
$query->execute();
$row = $query->fetch(PDO::FETCH_ASSOC);
$user_id = $row['user_id'];
echo $user_id;
}
这工作得很好,但效率等于 0。使用它user_id
我计划从imgit_users
表中获取其他内容,例如username
,这将需要在该循环中进行另一个查询。
这太多了,我需要一种更简单的方法来处理这个问题。
有没有办法user_id
在进入循环之前获取那些 s 并在循环中使用它们?
这是来自的表结构imgit_images
:
虽然这是 的架构imgit_users
: