Foros del Web » Programando para Internet » PHP »

Copiar archivos segun consulta

Estas en el tema de Copiar archivos segun consulta en el foro de PHP en Foros del Web. Tengo una tabla en mysql llamada PRODUCTOS y alli un campo llamado IMAGEN el cual posee el nombre del archivo (imagen.jpg) ahora supongamos que tengo ...
  #1 (permalink)  
Antiguo 04/11/2011, 10:02
 
Fecha de Ingreso: noviembre-2011
Mensajes: 5
Antigüedad: 12 años, 4 meses
Puntos: 0
Pregunta Copiar archivos segun consulta

Tengo una tabla en mysql llamada PRODUCTOS y alli un campo llamado IMAGEN el cual posee el nombre del archivo (imagen.jpg)

ahora supongamos que tengo una consulta:
SELECT * FROM productos
y la misma me trae el campo [IMAGEN] y un listado de 20 registros

¿Como hago (necesitaría que me ayuden con el código PHP) para que:

lea el registro 1 y lea el valor en la columna [IMAGEN] esa ruta o archivo me lo copie a una carpeta X, luego vaya al registro 2 y asi hasta el ultimo?


se de la funcion copy:
<?php copy($origen, $destino); ?>

pero no se como armar todo el codigo

Agradezco su ayuda

Saludos
  #2 (permalink)  
Antiguo 04/11/2011, 10:05
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 4 meses
Puntos: 48
Respuesta: Copiar archivos segun consulta

lee un poco sobre
mysql_fetch_row()

Con eso podras recoger uno por uno cada dato de la lista recibida, y ya solo faltaria hacer lo del copy.
  #3 (permalink)  
Antiguo 04/11/2011, 11:17
 
Fecha de Ingreso: noviembre-2011
Mensajes: 5
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Copiar archivos segun consulta

ok... estoy leyendo sobre el tema y he hecho lo siguiente:

$result = mysql_query("SELECT * FROM product ");
if (!$result) {
echo 'error en la consulta: ' . mysql_error();
exit;
}
$row = mysql_fetch_row($result);

echo $row[7];

con esto obtengo los datos de la columna 7 el cual contiene el nombre de la IMAGEN
hasta ahi perfecto

pero no puedo obtener (o no se como hacer para tomar ) los datos de la fila 2 ni de las siguientes
  #4 (permalink)  
Antiguo 04/11/2011, 11:36
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 4 meses
Puntos: 48
Respuesta: Copiar archivos segun consulta

Prueva esto y ve lo que hace:

Código PHP:
Ver original
  1. while($row = mysql_fetch_row($result))
  2. {
  3.     echo $row['imagen']."<br>";
  4. }

Imprimira por cada fila lo que hay en la columna imagen.
$row['imagen'] va estar cambiando siempre de valor hasta terminar segun el total de filas obtenidas por la consulta
  #5 (permalink)  
Antiguo 04/11/2011, 12:25
 
Fecha de Ingreso: noviembre-2011
Mensajes: 5
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Copiar archivos segun consulta

Estimados amigos... la verdad que es mi primera experiencia programando en PHP
veo que que tengo todos los elementos de la receta pero no se como armarlo:

Les paso el codigo medio armado y les pido ayuda para que me enseñen como solucionar mis inquietudes:

Pregunta 1
¿como hago para establecer que $id_minimo tenga el valor de esta consulta SELECT product_id FROM product WHERE product_id = (SELECT MIN(product_id) FROM product?

Pregunta 2
¿como hago para establecer que $id_maximo tenga el valor de esta consulta SELECT product_id FROM product WHERE product_id = (SELECT MAX(product_id) FROM product?

Código PHP:
Ver original
  1. <?php
  2. // Datos de conexion a la base de datos
  3. $bd_host = "localhost";
  4. $bd_usuario = "root";
  5. $bd_password = "usbw";
  6. $bd_base = "shop";
  7.  
  8. $con = mysql_connect($bd_host, $bd_usuario, $bd_password);
  9.  
  10. mysql_select_db($bd_base, $con);
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18. $destino ="/carpeta_X/"
  19.  
  20. //Esta es la consulta que me trae el [ID] de menor valos
  21. //"SELECT product_id FROM product WHERE product_id = (SELECT MIN(product_id) FROM product
  22. $id_minimo=""
  23.  
  24. //Esta es la consulta que me trae el [ID] de menor valos
  25. //"SELECT product_id FROM product WHERE product_id = (SELECT MAX(product_id) FROM product
  26. $id_maximo=""
  27.  
  28.  
  29.  
  30.  
  31. for ($i=$id_minimo; $i<=$id_maximo; $i++)<br />
  32. $origen ="" //SELECT image FROM product WHERE product_id = $i
  33.   {
  34.     copy($origen, $destino);
  35.     echo "se ha copiado la imagen:" . $origen . "<br />";
  36.   }
  37.  
  38.  echo "Proceso Concluido!"
  39. ?>


Les agradezco su ayuda
  #6 (permalink)  
Antiguo 04/11/2011, 12:35
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 4 meses
Puntos: 48
Respuesta: Copiar archivos segun consulta

Código PHP:
Ver original
  1. $r = mysql_fetch_row(mysql_query("SELECT product_id FROM product WHERE product_id = (SELECT MIN(product_id) FROM product"));
  2. $id_minimo = $r['product_id'];
  3.  
  4. $r = mysql_fetch_row(mysql_query("SELECT product_id FROM product WHERE product_id = (SELECT MAX(product_id) FROM product"));
  5. $id_maximo = $r['product_id'];

Código PHP:
Ver original
  1. for ($i=$id_minimo; $i<=$id_maximo; $i++)
  2. {
  3.     $img = mysql_fetch_row(mysql_query("SELECT image FROM product WHERE product_id = '".$i."'"));
  4.     $origen = $img; //SELECT image FROM product WHERE product_id = $i
  5.     copy($origen, $destino);
  6.     echo "se ha copiado la imagen:" . $origen . "<br />";
  7.   }
  #7 (permalink)  
Antiguo 04/11/2011, 13:22
 
Fecha de Ingreso: noviembre-2011
Mensajes: 5
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Copiar archivos segun consulta

Gracias ahora entiendo bien como hacerlo.... gracias por enseñarme

si me ha dado un error:
Parse error: syntax error, unexpected ';' in I:\Software\Portables\USBWebserver v8_en\root\consulta.php on line 15

la linea 15 en mi archivo es:
Código PHP:
Ver original
  1. $s = mysql_fetch_row(mysql_query("SELECT product_id FROM product WHERE product_id = (SELECT MAX(product_id) FROM product");


Me imagino que debe ser por la version de Mysql

Server: localhost via TCP/IP
Server version: 5.1.44-community
Protocol version: 10
User: root@localhost
MySQL charset: (utf8)
Web server

Apache/2.2.15 (Win32) PHP/5.2.13
MySQL client version: 5.0.51a
PHP extension: mysql
  #8 (permalink)  
Antiguo 04/11/2011, 13:29
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 4 meses
Puntos: 48
Respuesta: Copiar archivos segun consulta

Te falto un
)

Al final checa cerraste el ) del mysql_query, pero no el de mysql_fetch_row
  #9 (permalink)  
Antiguo 04/11/2011, 14:36
 
Fecha de Ingreso: noviembre-2011
Mensajes: 5
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Copiar archivos segun consulta

Gracias amigo... me da este error... hace una hora que estoy tratando de resolverlo por que no queria molestarte.. pero te pido esta ultima ayuda:

ERROR:
Parse error: syntax error, unexpected T_STRING in I:\Software\Portables\USBWebserver v8_en\root\consulta.php on line 21

LINEA 21:


Código MySQL:
Ver original
  1. $img = mysql_fetch_row(mysql_query("SELECT image FROM product WHERE product_id = '".$i."'"));
  #10 (permalink)  
Antiguo 04/11/2011, 14:43
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 4 meses
Puntos: 48
Respuesta: Copiar archivos segun consulta

Cita:
Iniciado por nachoizk Ver Mensaje
Gracias amigo... me da este error... hace una hora que estoy tratando de resolverlo por que no queria molestarte.. pero te pido esta ultima ayuda:

ERROR:
Parse error: syntax error, unexpected T_STRING in I:\Software\Portables\USBWebserver v8_en\root\consulta.php on line 21

LINEA 21:


Código MySQL:
Ver original
  1. $img = mysql_fetch_row(mysql_query("SELECT image FROM product WHERE product_id = '".$i."'"));
Ok, ahi si no tengo ni la menor idea pero puedes intentar poniendolo asi:

Código PHP:
Ver original
  1. $img = mysql_fetch_row(mysql_query("SELECT image FROM product WHERE product_id = '$i'"));

Aver si de milagro funciona aunque yo no le veo error alguno.

Si aun asi no va, pon el demas codigo para checarlo bien y capas y es otra linea antes o despues ... jejeje ;D

Etiquetas: mysql, registro, tabla
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 09:12.