Foros del Web » Programando para Internet » PHP »

Insertar varias imagenes a la vez ¿Como?

Estas en el tema de Insertar varias imagenes a la vez ¿Como? en el foro de PHP en Foros del Web. Hola, tengo un problema que intentaré exponerlo de la forma mas sencilla. Quiero crear una base de datos con mysql de personajes de distintos tipos, ...
  #1 (permalink)  
Antiguo 26/04/2010, 07:54
Avatar de neoarcangel  
Fecha de Ingreso: enero-2005
Ubicación: España
Mensajes: 566
Antigüedad: 19 años, 9 meses
Puntos: 5
Insertar varias imagenes a la vez ¿Como?

Hola, tengo un problema que intentaré exponerlo de la forma mas sencilla.

Quiero crear una base de datos con mysql de personajes de distintos tipos, de series, peliculas, etc, seria como una especie de dni de cada personaje donde a la izquierda apareceria su foto en grande, a la derecha de que y por que es famoso.
Y en la fila inmediatamente inferior serian fotos dinamicas a insertar de ese personaje, ese es mi problema, la foto grande iria aparte, el problema son las fotos dinamicas, me gustaria saber algún modo de poder insertar mas de una a la vez que no con el clasico input que te permite insertar 1 sola.

Actualmente para insertar imagenes uso esto

un formulario asi

Código PHP:
<FORM action="index.php?p=subiendoiconos.php" method="POST" enctype="multipart/form-data">
<table BORDER="10">

<tr>
<td>
<select name="codcategoria">
<?php 
    
/////DESPLEGABLE CON TODAS LAS CATEGORIAS
    
$sql="SELECT * FROM categorias ORDER BY categoria_nombre ASC";
    
$consulta=mysql_query($sql,$conexion);
    while(
$registros=mysql_fetch_array($consulta))
    {

?>
    <option value="<?php echo $registros["codcategoria_categoria"];?>"><?php echo $registros["categoria_nombre"];?></option>

<?php 
        
}
?>

</select>

</td>
<tr>

<tr>
<td><input type="file" name="icono"></td>
<tr>



<td><input type="submit" value="Subelo" ></td>
</td>
</table>
</FORM>
y una pagina de insercion

que vendria a tener algo asi

Código PHP:
//RECUPERANDO VARIABLES DE SUBIR ICONOS.phpcredits
$codcategoria=$_POST["codcategoria"];
$icono=$_FILES["icono"]["name"]; //nombre de archivo
$tmp=$_FILES["icono"]["tmp_name"]; //nombre temporal del fichero
move_uploaded_file($tmp,"imagenes/".$icono);

$sql="UPDATE categorias SET icono_categoria='".$icono."' WHERE  codcategoria_categoria='".$codcategoria."' ";
    
$consulta=mysql_query($sql,$conexion);
    echo 
'<div id="barragris2">Icono de categoria subido correctamente</div>'
En la pagina de insercion he quitado una funcion superlarga de redimensionado de imagenes pero asi deberia funcionar, el problema es que asi, tengo que ir al formulario, seleccionar la imagene, darle a insertar, ver el mensaje de que se ha insertado bien, volver al formulario, elegir la imagen, darle al boton, ver que se ha insertado bien, volver al formulario, etc etc etc,

Lo que quiero es que se me habrá un input o algún otro sistema para poder insertarla mas de una a la vez, claro que en este caso no seria como en el del codigo de arriba, no seria un UPDATE sino un INSERT, ya que cada imagen crearia una fila sql.

Habia pensado en algo descabellado y que no funcionaria.
en hacer algo de algún modo que todavia no sé para que saliese algo asi.
Queria crear una especie de bucle o algo para que con un boton de + y otro de menos fuesen repetiendo o eliminando este codigo

Código PHP:

<tr>
<
td><input type="file" name="icono"></td>
<
tr
Pero luego pienso que no funcionaria por que luego habria que meterlo en un vector y quizás no funcionase.

¿Existe algún sistema SENCILLO para poder insertar varias imagenes a la vez?

Por favor que sea sencillo que no llevo mucho tiempo programando y un pedazo codigo puede que no lo entienda.

Gracias
__________________
Mi equipo

Gigabyte GA-MA770T-UD3P Socket AM3|OZC StealthxStream 600 w | Gigabyte Radeon HD 4770 512MB GDDR5| AMD Phenom II 945 X4 Quad Core 3.0Ghz| Memoria Kingston 6GB DDR3 1333
  #2 (permalink)  
Antiguo 26/04/2010, 08:16
 
Fecha de Ingreso: abril-2010
Mensajes: 19
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Insertar varias imagenes a la vez ¿Como?

Ya me voy a trabajar por lo cual no puedo darte un ejemplo muy claro, pero te dejo la IDEA, en tu codigo de formulario define todos las etiquetas file que gustes, en la pagina PHP donde recibes el formulario tienes que hacer un FOREACH para obtener todos las variables de $_FILES, ejemplo:

Código PHP:
Ver original
  1. foreach($_FILES as $nombre_archivo => $valor)
  2. {
  3.                //RECUPERANDO VARIABLES DE SUBIR ICONOS.phpcredits
  4. $codcategoria=$_POST["codcategoria"];
  5. $icono=$nombre_archivo["name"]; //nombre de archivo
  6. $tmp=$nombre_archivo["tmp_name"]; //nombre temporal del fichero
  7. move_uploaded_file($tmp,"imagenes/".$icono);
  8.            
  9. }

Puedes subir indefinidamente las imagenes que quieras.
  #3 (permalink)  
Antiguo 26/04/2010, 08:30
Avatar de neoarcangel  
Fecha de Ingreso: enero-2005
Ubicación: España
Mensajes: 566
Antigüedad: 19 años, 9 meses
Puntos: 5
Respuesta: Insertar varias imagenes a la vez ¿Como?

Respecto a tu respueta, sé que el foreach es un bucle pero no sé como se usa.

Aparte de si optamos por poner todas las etiquetas files en el formulario, la idea es hacerlo dinamico y poder aumentar o disminuir en funcion de las imagenes que vayamos a subir, pero no sé muy bien que condicion poner en el for para aumentar o disminuir
__________________
Mi equipo

Gigabyte GA-MA770T-UD3P Socket AM3|OZC StealthxStream 600 w | Gigabyte Radeon HD 4770 512MB GDDR5| AMD Phenom II 945 X4 Quad Core 3.0Ghz| Memoria Kingston 6GB DDR3 1333
  #4 (permalink)  
Antiguo 26/04/2010, 08:37
 
Fecha de Ingreso: abril-2010
Mensajes: 19
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Insertar varias imagenes a la vez ¿Como?

Cita:
Iniciado por neoarcangel Ver Mensaje
Respecto a tu respueta, sé que el foreach es un bucle pero no sé como se usa.

Aparte de si optamos por poner todas las etiquetas files en el formulario, la idea es hacerlo dinamico y poder aumentar o disminuir en funcion de las imagenes que vayamos a subir, pero no sé muy bien que condicion poner en el for para aumentar o disminuir
El foreach te genera un bucle por cada vector de una matriz, como $_FILES es una matriz te da como resultado X bucles por cada <input type="file"> que reciba el documento PHP, a lo mejor no me explico bien y el manual de PHP te sirve mejor:

http://php.net/manual/es/control-structures.foreach.php
  #5 (permalink)  
Antiguo 26/04/2010, 18:21
Avatar de neoarcangel  
Fecha de Ingreso: enero-2005
Ubicación: España
Mensajes: 566
Antigüedad: 19 años, 9 meses
Puntos: 5
Respuesta: Insertar varias imagenes a la vez ¿Como?

Cita:
Iniciado por BaEEz_ Ver Mensaje
El foreach te genera un bucle por cada vector de una matriz, como $_FILES es una matriz te da como resultado X bucles por cada <input type="file"> que reciba el documento PHP, a lo mejor no me explico bien y el manual de PHP te sirve mejor:

http://php.net/manual/es/control-structures.foreach.php
Lo he estado mirando pero por lo visto se mueve solo con matrices y no con vectores, me gustaria algún sistema mas con vectores, ya que con matrices no he trabajado nada y siendo sincero viendo ejemplos del foreach no me aclaro

¿Algún otro modo?
__________________
Mi equipo

Gigabyte GA-MA770T-UD3P Socket AM3|OZC StealthxStream 600 w | Gigabyte Radeon HD 4770 512MB GDDR5| AMD Phenom II 945 X4 Quad Core 3.0Ghz| Memoria Kingston 6GB DDR3 1333
  #6 (permalink)  
Antiguo 27/04/2010, 06:07
Avatar de neoarcangel  
Fecha de Ingreso: enero-2005
Ubicación: España
Mensajes: 566
Antigüedad: 19 años, 9 meses
Puntos: 5
Respuesta: Insertar varias imagenes a la vez ¿Como?

¿No se os ocurre algún otro ejemplo que no sea ni con foreach ni con matrices?

Solo vectores, es que hace poco que programo y las matrices grandes y las clases no las he visto.
__________________
Mi equipo

Gigabyte GA-MA770T-UD3P Socket AM3|OZC StealthxStream 600 w | Gigabyte Radeon HD 4770 512MB GDDR5| AMD Phenom II 945 X4 Quad Core 3.0Ghz| Memoria Kingston 6GB DDR3 1333

Etiquetas: imagenes
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 12:53.