Foros del Web » Programando para Internet » PHP »

insertar array en tabla mysql

Estas en el tema de insertar array en tabla mysql en el foro de PHP en Foros del Web. Tengo un formulario de llenado que consta de 3 columnas y 'x' renglones. Aquí creo el array y tomo los valores. Código PHP:  $_SESSION [ ...
  #1 (permalink)  
Antiguo 15/03/2012, 16:31
Avatar de LUCA87  
Fecha de Ingreso: marzo-2012
Mensajes: 4
Antigüedad: 12 años, 1 mes
Puntos: 0
Pregunta insertar array en tabla mysql

Tengo un formulario de llenado que consta de 3 columnas y 'x' renglones.
Aquí creo el array y tomo los valores.

Código PHP:
 $_SESSION['formulario'] = array();
    while (
$i<15)
    {
    
$descripcion 'descripcion'.$i;
    
$cantidad 'cantidad'.$i;
    
$total 'total'.$i;
    
    
$_SESSION['formulario'][$i]['descripcion'] = $_POST[$descripcion];
    
$_SESSION['formulario'][$i]['cantidad'] = $_POST[$cantidad];
    
$_SESSION['formulario'][$i]['total'] = $_POST[$total];
    
$i++;
    } 
Ahora tengo mi tabla en mysql donde quiero grabar esta información, pero no se como hacerlo... hice algo así pero no me funciona:

Código PHP:
  $query "INSERT INTO mitabla (";
  
$query.= "descripcion, cantidad, total) ";
  
$query.= "VALUES ( ";
  
$query.= "'".$_SESSION["formulario"][$i]['descripcion']."', ";
  
$query.= "'".$_SESSION["formulario"][$i]['cantidad']."', ";
  
$query.= "'".$_SESSION["formulario"][$i]['total']."') ";

   if ( !
dbExecute($query) )
        {
               echo 
mysql_error().":\n<br>$query<br>\n";
               exit;
        } 
Quiero que en la tabla se graben los 15 renglones que traigo de mi formulario. ¿Como le hago?

Última edición por LUCA87; 15/03/2012 a las 16:41
  #2 (permalink)  
Antiguo 15/03/2012, 17:03
Avatar de luna690  
Fecha de Ingreso: marzo-2012
Ubicación: Barcelona
Mensajes: 61
Antigüedad: 12 años, 1 mes
Puntos: 3
Respuesta: insertar array en tabla mysql

Cita:
Iniciado por LUCA87 Ver Mensaje
Código PHP:
 $_SESSION['formulario'] = array();
    while (
$i<15)
    {
    
$descripcion 'descripcion'.$i;
    
$cantidad 'cantidad'.$i;
    
$total 'total'.$i;
    
    
$_SESSION['formulario'][$i]['descripcion'] = $_POST[$descripcion];
    
$_SESSION['formulario'][$i]['cantidad'] = $_POST[$cantidad];
    
$_SESSION['formulario'][$i]['total'] = $_POST[$total];
    
$i++;
    } 
Hola,
he estado mirando tu código, y.. podría fallar por los $_POST[$descripcion]; ?
Diria que los $_POST, tal como lo tienes, lo tendrías que sacar.

Código PHP:
$_SESSION['formulario'][$i]['descripcion'] = $descripcion;
    
$_SESSION['formulario'][$i]['cantidad'] = $cantidad;
    
$_SESSION['formulario'][$i]['total'] = $total
  #3 (permalink)  
Antiguo 15/03/2012, 17:12
Avatar de LUCA87  
Fecha de Ingreso: marzo-2012
Mensajes: 4
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: insertar array en tabla mysql

Uso el $_POST() porque el formulario lo puedo recargar para hacer un calculo... pero de todos modos lo intente dejándolos como variables solamente y sigue sin detectarme lo que traigo en mi $_SESSION['formulario'].
  #4 (permalink)  
Antiguo 15/03/2012, 17:15
Avatar de tecnoanclaCom  
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 5
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: insertar array en tabla mysql

quiero entender la lo que estas haciendo no entiendo varias cosas como por ejemplo para que los guardas en un arreglo de $_SESSION, no seria mas facil guardarlos directamente en la base de datos sin tener que guardarlos en el arreglo primero es decir algo asi:

while ($i<15){

$descripcion = 'descripcion'.$i;
$cantidad = 'cantidad'.$i;
$total = 'total'.$i;

$query="insert into mitabla (descripcion, cantidad, total) values ('$_POST[$descripcion]', '$_POST[$cantidad]', '$_POST[$total]');
$result = mysql_query($query);
$i++;
}

espero que te sirva, eso es lo que mas o menos entendi que querias hacer.
  #5 (permalink)  
Antiguo 16/03/2012, 11:42
Avatar de LUCA87  
Fecha de Ingreso: marzo-2012
Mensajes: 4
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: insertar array en tabla mysql

Lo que pasa es que tengo un formulario que muestro 15 veces en 'pagina1.php':

Código PHP:
for ($i = 1; $i < 15; $i++){?>
<tr>
<td><div align="center">
<input name="descripcion<?php echo $i;?>" type="text" id=" descripcion <?php echo $i;?>" value=<? if (isset($_SESSION["formulario"])) echo $_SESSION[' formulario '][$i][' formulario '?>></div></td>
<td <div align="center">
<input name="cantidad<?php echo $i;?>" type="text" id=" cantidad <?php echo $i;?>"  value=<? if (isset($_SESSION["formulario"])) echo $_SESSION[' formulario '][$i]['unidades'?>></div></td>
<td ><div align="center">
<input name="total<?php echo $i;?>" type="text" id=" total <?php echo $i;?>"  value=<? if (isset($_SESSION["formulario"])) echo  $_SESSION[' formulario '][$i][' total '?>></div></td>
</tr>
<?php }?>
en esta página yo muestro 2 botones, uno para continuar e ir a la siguiente página y otra para recargar y mostrar sumatoria de 'cantidad' y 'total'.

Cuando le doy en el boton de ver sumatoria, me voy a una segunda página 'pagina2.php' que por detras recibe los datos y hace los calculos:

Código PHP:
 $_SESSION['formulario'] = array();
    while (
$i<15)
    {
    
$descripcion 'descripcion'.$i;
    
$cantidad 'cantidad'.$i;
    
$total 'total'.$i;
    
    
$_SESSION['formulario'][$i]['descripcion'] = $_POST[$descripcion];
    
$_SESSION['formulario'][$i]['cantidad'] = $_POST[$cantidad];
    
$_SESSION['formulario'][$i]['total'] = $_POST[$total];}

    
$S_cantitdad$S_cantitdad$_SESSION['formulario'][$i]['cantidad'];
    
$S_total$S_total$_SESSION['formulario'][$i]['total'];

    
$i++;
    } 
ahora lo que yo quiero hacer es que cuando le den continuar, en mi tercera página ''pagina3.php' se guarden lo que traigo en $_SESSION['formulario'] en una tabla de mysql.

Código PHP:
$query "INSERT INTO mitabla (";
  
$query.= "descripcion, cantidad, total) ";
  
$query.= "VALUES ( ";
  
$query.= "'".$_SESSION["formulario"][$i]['descripcion']."', ";
  
$query.= "'".$_SESSION["formulario"][$i]['cantidad']."', ";
  
$query.= "'".$_SESSION["formulario"][$i]['total']."') ";

   if ( !
dbExecute($query) )
        {
               echo 
mysql_error().":\n<br>$query<br>\n";
               exit;
        } 
pero esto no me funciona...

Etiquetas: mysql, arrays
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 14:00.