mmm... me parece que estas planteando mal tu solución...
osea, estas haciendo un
while() para obtener cada archivo en un primer ciclo...
eso es muy tardado, imagina 1000 productos... y aproximadamente 1000 imagenes
haces un ciclo que te da las 1000 imágenes, una por una... y por cada una, vuelves a hacer una consulta que obtiene todos los 1000 ID's de la tabla!!!
caray... si se entiende el problema??
es mucho mas sencillo, hacer una simple consulta a la base de datos... y luego, hacer un solo
while() y empezar a comparar por las imágenes...
y obvio, si la relación es el ID del producto... ya no necesitas listar los archivos (
solo si buscas que alguna imagen no existe realmente)
Código PHP:
$old = "/ruta/de/las/imagenes/{$row->id}.jpg";
if ( ! is_file($old)) // ...
ahora... si necesitas verificar que archivo no tiene ID en la tabla, tampoco necesitas hacer una consulta que obtenga todos los ID's de la tabla por cada imagen localizada ¡¡es una locura!!
pero si necesitas listar los archivos, obtienes uno a uno... y extraes el numero de la imagen
ahí ya tienes el ID con el cual hacer una sola consulta mas precisa...
Código PHP:
$sql = "SELECT * FROM tabla WHERE id ={$imagen_id}";
espero comprendas... suerte!