Foros del Web » Programando para Internet » PHP »

error con foreach

Estas en el tema de error con foreach en el foro de PHP en Foros del Web. como estan amigos, traigo un problema que quizá no es tan grande, pero que no he podido solucionar.. se trata de agregar imagenes a la ...
  #1 (permalink)  
Antiguo 29/12/2012, 23:08
 
Fecha de Ingreso: febrero-2012
Mensajes: 163
Antigüedad: 7 años, 9 meses
Puntos: 0
error con foreach

como estan amigos, traigo un problema que quizá no es tan grande, pero que no he podido solucionar..

se trata de agregar imagenes a la base de datos y al servidor...

tengo un formulario para insertar que funciona muy bien, y tambien tengo un formulario para editar al que le agrego exactamente lo mismo que el insertar, para poder agregar fotos y me aparece el mensaje... Warning: Invalid argument supplied for foreach() in.... el error apunta a esta linea.. foreach ($_FILES["foto"]["error"] as $key => $error) {

He buscado en internet varias soluciones, pero no se por que no funciona...

aquí está el código..

Código PHP:
Ver original
  1. //agrego 2 imagenes...
  2. <input type="file" name="foto[]" />
  3. <input type="file" name="foto[]" />

Código PHP:
Ver original
  1. $codigo = $_POST['codigo'];
  2.  
  3. $query = "UPDATE productos SET nombre='".$_POST["nombre"]."', ......";
  4.     $result=mysql_query($query,$link) or die("Error: ".mysql_error());
  5.  
  6.  
  7.         foreach ($_FILES["foto"]["error"] as $key => $error) {
  8.             $nombre_archivo = $_FILES["foto"]["name"][$key];  
  9.             $tipo_archivo = $_FILES["foto"]["type"][$key];  
  10.             $tamano_archivo = $_FILES["foto"]["size"][$key];
  11.             $temp_archivo = $_FILES["foto"]["tmp_name"][$key];
  12.            
  13.             $extension = explode(".",$nombre_archivo);
  14.             $ultimo = end( $extension );
  15.            
  16.             date_default_timezone_set('Chile/Continental');
  17.             $fecha = date('YmdHis');
  18.            
  19.             $nom_img = $nombre_archivo.'.'.$fecha.'.'.$ultimo;  //nombre nuevo de la imagen      
  20.             $directorio = 'sss';
  21.            
  22.             if (copy($temp_archivo,$directorio . "/" . $nom_img))  
  23.             {  
  24.                 mysql_query("INSERT INTO imagenes (codigo, foto) VALUES ($codigo, '$nom_img')");
  25.             }  
  26.         }

como dije antes en el insertar me funciona muy bien....

desde ya les agradezco su ayuda...

saludos.
  #2 (permalink)  
Antiguo 30/12/2012, 00:03
Avatar de lfriasherrera  
Fecha de Ingreso: marzo-2012
Mensajes: 21
Antigüedad: 7 años, 8 meses
Puntos: 1
Respuesta: error con foreach

¿Con que propósito utilizas esta linea?
Código PHP:
Ver original
  1. foreach ($_FILES["foto"]["error"] as $key => $error) {
  #3 (permalink)  
Antiguo 30/12/2012, 01:34
 
Fecha de Ingreso: febrero-2012
Mensajes: 163
Antigüedad: 7 años, 9 meses
Puntos: 0
Respuesta: error con foreach

para agregar muchas fotos al mismo tiempo?
  #4 (permalink)  
Antiguo 30/12/2012, 02:41
Avatar de lfriasherrera  
Fecha de Ingreso: marzo-2012
Mensajes: 21
Antigüedad: 7 años, 8 meses
Puntos: 1
Exclamación Respuesta: error con foreach

Si no me equivoco, en la linea que te mencioné
Código PHP:
Ver original
  1. foreach ($_FILES["foto"]["error"] as $key => $error) {
le estas diciendo al programa que cada vez que exista un error, se ejecuta el código dentro del bucle, hasta ahí creo que es un error, y creo que todavia falta uno, te recomiendo que leas esta parte del Manual de PHP que trata sobre como subir archivos mediante PHP, estos te dicen como manejar cada parametro de la función $_FILE en PHP.

http://www.forosdelweb.com/wiki/Manual_de_PHP:_Subiendo_archivos_al_servidor_con_P HP

y aquí otro

http://www.w3schools.com/php/php_file_upload.asp

ahi veras que el parametro "error" dentro de esta parte de código,
Código PHP:
Ver original
  1. $_FILES["foto"]["error"]
, te devuelve un TRUE ó 1 cada vez que ocurre un error al subir los archivos.

Ya si no logras resolver el error por ti mismo, puedes ver como funciona el código para subir archivos que hay en este link
http://www.cristalab.com/tutoriales/subir-multiples-archivos-con-php-c32381l/

Última edición por lfriasherrera; 30/12/2012 a las 02:43 Razón: error en url
  #5 (permalink)  
Antiguo 30/12/2012, 11:18
 
Fecha de Ingreso: febrero-2012
Mensajes: 163
Antigüedad: 7 años, 9 meses
Puntos: 0
Respuesta: error con foreach

Mil gracias por tu respuesta, me ha servido muchísimo...

gracias pro tu ayuda!, saludos.

Etiquetas: foreach, formulario, mysql, sql
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 06:08.