Foros del Web » Programando para Internet » PHP »

comparar nombres de archivos

Estas en el tema de comparar nombres de archivos en el foro de PHP en Foros del Web. Hola y gracias a todos los que me estan ayudando voy a replantear el problema en el que estoy desde hace dias y no puedo ...
  #1 (permalink)  
Antiguo 16/09/2009, 18:50
 
Fecha de Ingreso: julio-2009
Mensajes: 311
Antigüedad: 14 años, 8 meses
Puntos: 0
Pregunta comparar nombres de archivos

Hola y gracias a todos los que me estan ayudando
voy a replantear el problema en el que estoy desde hace dias y no puedo resolver
tengo una carpeta de imagenes que su nombre es un numero
tengo una tabla de productos que su idproducto es igual al nombre de la imagen
cada producto tiene su correspondiente imagen pero a veces quedan imagenes huerfanas y necesito detectalas.
ejemplo
idproducto 101 .....imagen 101
idproducto 102 ......imagen 102
idproducto 103 ..... imagen 103
imagen 120 <<< imagen huerfana

logro abrir el directorio de imagenes listarlos pero he marcado el punto donde
no logro escrbiir el codigo que efectue la tarea que necesito

$dir = opendir('images/productos');
while ($file = readdir($dir) )
{
$ConsultaSQL="Select idproducto FROM productos";
$resultado = mysql_query($ConsultaSQL);
while ($registro = mysql_fetch_array($resultado))
{
Acá necesito expresar en código que compare el valor de $file en este momento con todos los valores
que va tomando $registro["idProducto"] y si no existiera un $registro["idproducto"]=al valor de $file
que lo imprima pues esa es una imagen huerfana.
}

}
closedir($dir);

Espero haber sido claro pues no he logrado que interpretn mi problema y no logro con mis escasos conociemtos proceder a solucionarlo
Gracias
  #2 (permalink)  
Antiguo 16/09/2009, 21:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: comparar nombres de archivos

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!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 17/09/2009, 05:39
 
Fecha de Ingreso: julio-2009
Mensajes: 311
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: comparar nombres de archivos

Gracias mil gracias por explicarme todo con tanto detalle . Aclararte mis ideas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:23.