Foros del Web » Programando para Internet » PHP » CodeIgniter »

Guardar datos Json o Serialize en base de datos y recuperarlos

Estas en el tema de Guardar datos Json o Serialize en base de datos y recuperarlos en el foro de CodeIgniter en Foros del Web. Buenas a todos, Tengo una duda sobre como guardar los datos en la DB usando json o serialize php, el asunto es que tengo una ...
  #1 (permalink)  
Antiguo 09/08/2015, 09:52
 
Fecha de Ingreso: abril-2014
Ubicación: Madrid
Mensajes: 14
Antigüedad: 10 años, 7 meses
Puntos: 0
Guardar datos Json o Serialize en base de datos y recuperarlos

Buenas a todos,

Tengo una duda sobre como guardar los datos en la DB usando json o serialize php, el asunto es que tengo una tabla que se llama "options" en la que tengo un campo "option_id" (autoincrement), otro "option_key" y otro "option_value"

Necesito guardar por en una sola fila todas los colores disponibles para luego rellenar un input select
**Estoy usando Codeigniter (version 2.2) aunque una vez resuelto todo esto es cosa de pocas semanas pasarlo a Codeigniter 3.0

Table Options
Código MySQL:
Ver original
  1. +---------+----------------+----------------+
  2. |option_id | option_key   |   option_value  |
  3. +---------+----------------+----------------+
  4. |     1   |      colours      |   ["Azul","Amarillo","Rojo","Violeta"]   |
  5. +---------+----------------+----------------+---------------+-------------+

¿Se puede guardar en la base de datos directamente en Json y luego recuperarlo?

En mi model tengo esta función
Código PHP:
public function get_colour_list()
{
  
$this->db->from('options_items');
  
$this->db->where('option_key''colours');
  
$query $this->db->get();
  
$result $query->result();
  return 
json_decode($resultTRUE);


Luego en el controller:
Código PHP:
public function test()
{
  
$data['colours'] = $this->model->get_colour_list();


Vista:
Código PHP:
echo form_dropdown('colores'$colours$colour); 
Lo he intentado de mil maneras y no lo consigo de ningun modo, de devuelve NULL, o directamente nada
Alguna idea o lo que estoy intentando hacer no se hace de esta forma

PD: Lo mismo me ocurre con serialize php en lugar de json

Muchas gracias por la ayuda!!
  #2 (permalink)  
Antiguo 10/08/2015, 15:10
 
Fecha de Ingreso: febrero-2006
Mensajes: 155
Antigüedad: 18 años, 10 meses
Puntos: 6
Respuesta: Guardar datos Json o Serialize en base de datos y recuperarlos

Hola, los datos serializados en muchas ocasiones se corrompen al subirlos a una tabla, por codificación, o por lo que sea (sobre todo cuando son datos muy extensos y hay q guardarlos en un mediumtext o longtext).

Para evitar este problema me ha resultado bien codificar en base64 el string serializado; si son pocos datos no hay problema.

en tu caso si fuera $variable = array('rojo','amarillo','azul'), basta con grabar el serialize($variable) y después unserialize($variable) cuando lo traes de vuelta.

Los templates de wordpress ocupan mucho este método.

Slds!
  #3 (permalink)  
Antiguo 14/08/2015, 06:18
 
Fecha de Ingreso: abril-2014
Ubicación: Madrid
Mensajes: 14
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Guardar datos Json o Serialize en base de datos y recuperarlos

No sabia que los datos codificados en json o serialize php se corrompiesen al subirlos a una tabla...

Estais seguros? porque en otras aplicaciones tanto para carritos de compra, o el mismo wordpress usan datos serializados php...de todas formas en la app que me han encargado son simplemente opciones (el campo que mas opciones tiene son unas 180 opciones o asi, y se trata de una lista de paises)...

Gracias por los comentarios

Etiquetas: json, serialize
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 00:14.