PHP - Insertar array en una base de datos

   
Vista:
Imágen de perfil de Andres

Insertar array en una base de datos

Publicado por Andres (11 intervenciones) el 06/10/2015 05:58:20
Hola amigos necesito ayuda tengo una tabla en php y quiero introducir toda la tabla en my base de datos tengo ya un codigo pero lo que hace es insertar la ultima fila de mi tabla un numero de veces en mi base de datos
mis codigos son estos
Esta es ta tabla que quiero almacenar
Captura-de-pantalla-32
Este es el codigo que captura los datos
Captura-de-pantalla-33
Si los captura correctamente serializados aqui la muestra
Captura-de-pantalla-34
Pero al momento de insertarlo con el siguiente codigo solo me inserta la ultima fila de la tabla de php
Captura-de-pantalla-35
En mi base de datos se me esta guardando asi
Captura-de-pantalla-36
Si alguien me podria ayudar porfavor en que parte estoy haciendo mal para guardar toda la tabla en mi base de datos.
Desde ya gracias por su tiempo y ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Insertar array en una base de datos

Publicado por xve (5512 intervenciones) el 06/10/2015 10:17:34
Hola Andres, no muestras el código del formulario, pero viendo los valores que pasas, veo que se repiten, por lo que siempre obtendrás el ultimo valor.

al crear tu formulario, tienes que crear diferentes variables, o crear una variable que trabaje como array de valores.

Nos puedes mostrar el formulario?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres

Insertar array en una base de datos

Publicado por Andres (11 intervenciones) el 06/10/2015 16:50:34
Claro este es mi formulario bueno se los mando el codigo de mi tabla esta dentro de mi formulario que es muy grande

Captura-de-pantalla-38
lo que necesito es saber como guardar estos datos
Captura-de-pantalla-31
el codigo que estoy utilizando es este
Captura-de-pantalla-39
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Insertar array en una base de datos

Publicado por xve (5512 intervenciones) el 06/10/2015 20:08:13
Hola Andres, el formulario, lo creas dentro de un bucle, por lo que repites el nombre en los input...

Si tienes esto:
1
2
3
<input type="text" name="fecha">
...
<input type="text" name="fecha">
El único valor que recibes es el último...

pero si haces:
1
2
3
<input type="text" name="fecha[]">
...
<input type="text" name="fecha[]">
Recibes un array de valores con todos los valores.

Espero que te sirva...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andrtes

Insertar array en una base de datos

Publicado por Andrtes (11 intervenciones) el 06/10/2015 20:26:18
Como esta mi amigo lo hise les cambien el nombre a los inputs
campo[][] todos tienes este nombre

los guardo en mi base de datos asi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
$data = $_POST['campo'];
$data = array_filter($data);
 
// @todo edit below with your own database details
$con = mysqli_connect("localhost","root","alberto2791","condata");
 
// Check connection
if (mysqli_connect_errno()) {
    echo 'Failed to connect to MySQL: ' . mysqli_connect_error();
    exit();
}
 
unset($success, $fail);
$i=0;
foreach ($data as $row) {
 
    // @todo edit your table name and field names below
 
    $result = mysqli_query( $con,
"INSERT INTO condata.t_mayor (fecha,cod_cuenta,cuenta,deb,hab,saldo,t_bl_inicial_idt_bl_inicial)
        VALUES (
'$row[0]',
'$row[1]',
'$row[2]',
'$row[3]',
'$row[4]',
'$row[5]',
'$row[6]'
)
" );
 
    // REPLACE INTO when needed
 
    if($result){
 
        $success .= sprintf("%s has been entered in database.<br />", $row[0]);
 
    }else{
 
        $fail .= sprintf("%s insert failed: %s\n<br />", $row[0], mysqli_error($con));
    }
    $i++;
}
 
 
 
echo '<p>End of script.</p>';
 
mysqli_close($con);
?>

La cual si se me guardan pero de se guardan de la siguiente manera.

Captura-de-pantalla-42

Cuando deberia ser asi

Captura-de-pantalla-32
Puedes ayudarme a buscar en donde esta el error? gracias por tu tiempo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar