Foros del Web » Programando para Internet » PHP »

consultas anidadas

Estas en el tema de consultas anidadas en el foro de PHP en Foros del Web. Hola, tengo que elaborar una consulta que esta anidada con otra y no logro que me funcione Intentare ser claro a ver si alquien me ...
  #1 (permalink)  
Antiguo 15/09/2009, 19:40
 
Fecha de Ingreso: julio-2009
Mensajes: 311
Antigüedad: 14 años, 8 meses
Puntos: 0
Pregunta consultas anidadas

Hola, tengo que elaborar una consulta que esta anidada con otra y no logro que me funcione
Intentare ser claro a ver si alquien me da una manito.
Tengo una carpeta ubicada en images/productos que contine las imagenes de productos.
En la base de datos hay una tabla con el detalle de cada producto.
Cada imagen se relaciona con su producto teniendo el mismo numero más un digito agregado
Ejemplo

idproducto101............ imagen1011
idproducto102............ imagen1021
idproducto103............ imagen1031
idproducto104............ imagen1041
imagen 1201 <<imagen que quiero localizar


para obtener el listado completo de productos que tengo uso el sigueinte codigo

$ConsultaSQL="Select * FROM productos";
while ($registro = mysql_fetch_array($resultado))
{ echo $registro["idProducto"];}

Para obtener un listado completo de los nombres de las imagenes ya quitandole el digito

$dir = opendir('images/productos');
while ($file = readdir($dir))
{
$SinDigitoFinal = substr($file,0,-1);
echo $SinDigitoFinal . "Imagen ". $file."<br>";
}
closedir($dir);

Lo que necesito lograr es la lista de imagenes "huerfanas " que ya no corresponden a ningun producto( en el caso de los datos de ejemplo que puse la imagen 1201 no tiene un producto al que represente)
Luego de lograr listar esas imagenes procederé a eliminarlas.
Gracias por ayudarme ,he probando de todo y en ningun caso logro que mi código
arroje como resultado la imagen que esta de mas.

Gracias por adelantado

Última edición por marcos46g; 16/09/2009 a las 05:27
  #2 (permalink)  
Antiguo 16/09/2009, 01:37
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: consultas anidadas

Vas a tener que leer sobre Directories. Especificamente sobre readdir.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 16/09/2009, 05:25
 
Fecha de Ingreso: julio-2009
Mensajes: 311
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: consultas anidadas

Cita:
Iniciado por abimaelrc Ver Mensaje
Vas a tener que leer sobre Directories. Especificamente sobre readdir.
ya he leido sobrfe directorios y entiendo su uso.
REcorro el directorio y listo sus elementos sin prolbemas excepto por una cosa curiosa que no logro entender que es
En listado que obtengo es

101 Imagen 1011
Imagen .
102 Imagen 1021
103 Imagen 1031
.Imagen ..
104 Imagen 1041
120 Imagen 1201
Aparecen dos imagenes en el listado sin nombre como si no estuvieran bien borradas o algo asi
No existe mas nada que lo que figura con los numeros detalladados

Pero el problema que no logro resolver es como anidar los condicionales para
captar la imagen que estan huerfanas sin producto correspondiente
GRACIAS pro ayudarme
  #4 (permalink)  
Antiguo 16/09/2009, 06:04
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: consultas anidadas

Ese que te indica
imagen .
imagen ..
se refiere al directorio corriente (imagen .) y al directorio anterior (imagen ..). Eso siempre va a salir en todos los directorios.

Pero con respecto a la pregunta de como conseguir a las huerfanas. Lo que tu puedes hacer es que vas recorriendo las imagenes (eliminando en una condicion los que salgan con . o ..), y el nombre de la imagen la vas comprobando en un query, si se encuentra en la base de datos no borrar, si esa imagen no se encuentra en la base de datos la borras.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
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 05:38.