Foros del Web » Programando para Internet » PHP »

Grabar array en una bd

Estas en el tema de Grabar array en una bd en el foro de PHP en Foros del Web. Hola a todos. Hay alguna manera de grabar un array en una base de datos asi tal cual, mi objetivo es crear una array con ...
  #1 (permalink)  
Antiguo 10/10/2010, 04:02
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Grabar array en una bd

Hola a todos.

Hay alguna manera de grabar un array en una base de datos asi tal cual, mi objetivo es crear una array con cookie de un carrito de compra, guardarlo en una base de datos y recuperarla cuando quiera.

Saludos.
  #2 (permalink)  
Antiguo 10/10/2010, 04:56
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 14 años, 5 meses
Puntos: 34
Respuesta: Grabar array en una bd

Podrias explicarte mejor, no entendi tu consulta.
¿Que datos contiene la cookie?
  #3 (permalink)  
Antiguo 10/10/2010, 05:12
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Respuesta: Grabar array en una bd

Vale pongo un ejemplo facil.

Tengo el siguiente array o matriz

$tabla[1]="valor1";
$tabla[2]="valor1";
$tabla[3]="valor1";
$tabla[4]="valor1";


Lo quiero es grabar en una tabla de una bd el valor que contiene $tabla.

Gracias
  #4 (permalink)  
Antiguo 10/10/2010, 05:47
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 14 años, 5 meses
Puntos: 34
Respuesta: Grabar array en una bd

El numero de datos es variable o fijo.
Por que si es fijo: creas cuatro campos en la bd y ya esta.
Pero si es variable puesde sutilizar implode() y explode()
Es lo mas facil
  #5 (permalink)  
Antiguo 10/10/2010, 05:50
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 14 años, 5 meses
Puntos: 34
Respuesta: Grabar array en una bd

IMPLODE
Código PHP:
Ver original
  1. $array = array('apellido', 'email', 'teléfono');
  2. $comma_separated = implode(",", $array);
  3.  
  4. echo $comma_separated; // apellido,email,teléfono
Eso lo guardas en un campo de la BD.

Y cuando vayas a recoger los datos solo tienes que hacer lo siguiente:
EXPLODE
Código PHP:
Ver original
  1. $cadena  = "apellido,email,telefono";
  2. $array = explode(",", $cadena);
  3. echo $cadena[0]; // apellido
  4. echo $cadena[1]; // email


Ejemplos sacados de aqui:
http://es2.php.net/implode
http://es2.php.net/manual/es/function.explode.php

Saludos y buena suerte!

Última edición por mariomon17; 10/10/2010 a las 05:52 Razón: Adaptacion del ejemplo.
  #6 (permalink)  
Antiguo 10/10/2010, 06:28
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Respuesta: Grabar array en una bd

Cita:
Iniciado por mariomon17 Ver Mensaje
IMPLODE
Código PHP:
Ver original
  1. $array = array('apellido', 'email', 'teléfono');
  2. $comma_separated = implode(",", $array);
  3.  
  4. echo $comma_separated; // apellido,email,teléfono
Eso lo guardas en un campo de la BD.

Y cuando vayas a recoger los datos solo tienes que hacer lo siguiente:
EXPLODE
Código PHP:
Ver original
  1. $cadena  = "apellido,email,telefono";
  2. $array = explode(",", $cadena);
  3. echo $cadena[0]; // apellido
  4. echo $cadena[1]; // email


Ejemplos sacados de aqui:
http://es2.php.net/implode
http://es2.php.net/manual/es/function.explode.php

Saludos y buena suerte!

Eso ya lo sabía hacer, mas que nada preguntaba por si se podría guardar el array entero, sin necesidar de "romperla" con explode.

Gracias por tu respuesta.
  #7 (permalink)  
Antiguo 10/10/2010, 08:26
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 14 años, 5 meses
Puntos: 34
Respuesta: Grabar array en una bd

Hace tiempo lei sobre tablas anidades o algo asi, para guardar los arrays. Pero es mucho mas lioso, esto es muy sencillo, yo lo haria de esta manera.
Un saludo!

Etiquetas: bd, grabar
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 11:09.