Foros del Web » Programando para Internet » PHP »

Insertar array en DB

Estas en el tema de Insertar array en DB en el foro de PHP en Foros del Web. Buenas, necesito ayuda a la hora de insertar unos datos en forma de array desde un formulario dinamico en mi base de datos. En si ...
  #1 (permalink)  
Antiguo 10/01/2012, 14:38
 
Fecha de Ingreso: marzo-2008
Mensajes: 60
Antigüedad: 16 años, 7 meses
Puntos: 0
Insertar array en DB

Buenas, necesito ayuda a la hora de insertar unos datos en forma de array desde un formulario dinamico en mi base de datos.

En si se insertan perfectamente el problema que tengo es que quisiera que un dato que se inserta y no tiene la misma cantidad de elementos que los demas arrays repita su valor en cada insert hasta completar la misma cantidad que los demas.

No se si me logre explicar, expongo el codigo, lo que inserto actualmente y lo que quisiera que se inserte.

De momento recibo estos arrays por el metodo Post y los inserto en la base de datos:


[album] => Array
(
[0] => valor de album 0
)

[imagen] => Array
(
[0] => valor de imagen 0
[1] => valor de imagen 1
[2] => valor de imagen 2
)

[tumb] => Array
(
[0] => valor de tumb 0
[1] => valor de tumb 1
[2] => valor de tumb 2
)

[contador] => 3
[Submit] => Enviar

De los arrays [imagen] y [tumb] Pueden llegar tanto 1 como 108 valores por ejemplo, ya que provienen de campos de texto que se generan de manera dinamica, pudiendo agregar la cantidad que uno quiera.

Lo cual mediante este codigo lo inserto en la base de datos:


Código HTML:
Ver original
  1. <form name="form1" method="POST" action="prueba.php">
  2. <input type="text" name="album[]" /><br/>
  3. <input type="button" value="Crear" onclick="crear(this)">
  4. <input type="button" name="b2" value="Quitar" onClick="borrar()" >
  5. <fieldset id="fiel">
  6. <input type="hidden" name="contador" value="" />
  7. <INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Enviar" onClick="return verificar()">
  8. </form>

Código PHP:
<?php
for ($i 0count($_POST['imagen']); $i++) {
    
    if( !isset(
$_POST['imagen'][$i]) || !isset($_POST['tumb'][$i]) ) {
        continue;
    }

    
$sql 'INSERT INTO multiples
        (imagenes, tumbs, album)
        VALUES
        ("'
.addslashes($_POST['imagen'][$i]).'", "'.addslashes($_POST['tumb'][$i]).'", "'.addslashes($_POST['album'][$i]).'")';
        
echo 
$sql."<br/>";
}
?>
De esta manera logro el siguiente insert:

INSERT INTO multiples (imagenes, tumbs, album) VALUES ("valor de imagen 0", "valor de tumb 0", "valor de album 0")

Notice: Undefined offset: 1 in C:\Archivos de programa\EasyPHP-5.3.6.1\www\mioprueba.php on line 89
INSERT INTO multiples (imagenes, tumbs, album) VALUES ("valor de imagen 1", "valor de tumb 1", "")

Notice: Undefined offset: 2 in C:\Archivos de programa\EasyPHP-5.3.6.1\www\mioprueba.php on line 89
INSERT INTO multiples (imagenes, tumbs, album) VALUES ("valor de imagen 2", "valor de tumb 2", "")

El "Undefined offset" aparece para indicar que estoy intentando agregar un valor que no esta definido, en este caso seria [album][1] y [album][2],
Esto lo puedo solucionar con un simple isset para evitar me lo inserte como campos vacio,


Pero lo que quiero lograr es que se repita el valor de [album][0], por lo cual se inserte lo siguiente:

INSERT INTO multiples (imagenes, tumbs, album) VALUES ("valor de imagen 0", "valor de tumb 0", "valor de album 0")

INSERT INTO multiples (imagenes, tumbs, album) VALUES ("valor de imagen 1", "valor de tumb 1", "valor de album 0")

INSERT INTO multiples (imagenes, tumbs, album) VALUES ("valor de imagen 2", "valor de tumb 2", "valor de album 0")

No se si supe explicarme soy bastante noob, si alguien comprende desde ya gracias :D

Última edición por Sabin; 10/01/2012 a las 15:26
  #2 (permalink)  
Antiguo 10/01/2012, 15:52
Avatar de xpapachox  
Fecha de Ingreso: junio-2011
Mensajes: 77
Antigüedad: 13 años, 5 meses
Puntos: 12
Respuesta: Insertar array en DB

=/
Creo que deberias exponer tus tablas y campos que se van insertar en todo ese proceso..

Parece que no estan bien normalizadas.. o no estan bien hechas.
  #3 (permalink)  
Antiguo 10/01/2012, 16:22
 
Fecha de Ingreso: marzo-2008
Mensajes: 60
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Insertar array en DB

Fue por una burrada inmensa, al estar dentro del "for" se deberia repetir el valor de "album" el tema que no se por que se me metio en la cabeza que debia mandarlo como array y de esa manera no me insertaba tal valor repetido.

Gracias por pasar :D

Etiquetas: formulario, imagenes, 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 22:30.