Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

"a:1:{i:0;s:17:"Subrubro Numero 1";}" que es esto???

Estas en el tema de "a:1:{i:0;s:17:"Subrubro Numero 1";}" que es esto??? en el foro de Bases de Datos General en Foros del Web. Hola amigos, mi pregunta es la siguiente (trabajo con php y mysql). Estoy modificando una BD que hizo otra persona, donde se tiene "Rubros", que ...
  #1 (permalink)  
Antiguo 20/06/2008, 08:44
 
Fecha de Ingreso: marzo-2007
Ubicación: Argentina
Mensajes: 26
Antigüedad: 17 años, 8 meses
Puntos: 0
"a:1:{i:0;s:17:"Subrubro Numero 1";}" que es esto???

Hola amigos, mi pregunta es la siguiente (trabajo con php y mysql). Estoy modificando una BD que hizo otra persona, donde se tiene "Rubros", que a su vez contienen diferentes "subrubros". por ultimo los subrubros tienen "proveedores". Un proveedor puede pertenecer a varios subrubros.

(Rubros---> Subrubros----> proveedores)

El caso es que en los registros de "proveedores" encuentro en el campo llamado "subrubros" lo siguiente:

Registro perteneciente a un solo subrubro:
a:1:{i:0;s:17:"Subrubro Numero 1";}


Registro perteneciente a 3 subrubros:
a:3:{i:0;s:21:"subrubro 2";i:1;s:11:"subrubro 3";i:2;s:17:"subrubro 4";}

¿que es ésto?
¿donde encuentro info para poder comprenderlo?
¿la "i" y la "s" que son?

Muchas gracias de antemano, saludos!!!
  #2 (permalink)  
Antiguo 20/06/2008, 08:55
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: "a:1:{i:0;s:17:"Subrubro Numero 1";}" que es esto???

Peter,
lo que tienes guardado es un array serializado. Pregunta en el foro del programa que uses (ASP, JSP, PHP) sobre el modo de unserialize los datos y poder trabajar con los datos de ese array.
  #3 (permalink)  
Antiguo 20/06/2008, 10:08
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Respuesta: "a:1:{i:0;s:17:"Subrubro Numero 1";}" que es esto???

jurena, No he trabajado con php... me cuentas porque se guarda el array asi en la BD?

Salu2
  #4 (permalink)  
Antiguo 20/06/2008, 11:46
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: "a:1:{i:0;s:17:"Subrubro Numero 1";}" que es esto???

amigo seyko,
no podría precisarte las razones exactas, pero te diré algunas de las que se me ocurren. Pero antes, aclaro que se trata de una línea de cadena donde se guardan los datos de un array, y pasan con su indicativo de tipo i(int), s(string) y la longitud, creo pero no estoy muy seguro. Imagina que cargas los datos de una consulta a una tabla y los quieres pasar a otra página; te has traído varios, puedes pasarlos en el array uno a uno o mejor serializas el array (esto también sirve para selectores), es decir, lo conviertes en una cadena, luego recoges la cadena y haces el unserialize en la página que recibe, y ya está. De una tacada te lo has traído y pasado todo. ¿Cómo sacarías tú de una función los datos de un array? Yo convierto a cadena de texto mediante serialize, si no recuerdo mal. También la carga en base de datos es fácil: se trata de una sola línea que luego puedes recuperar y tras volverla a convertir en array trabajar con ella. Al parecer, los que trabajan con carritos de compra suelen guardar los datos de esta manera, serializados, en la base. Seguro que en el foro de PhP te dicen mucho más y con más sentido. Yo lo usé en un prueba que hice de un test en el que se recogían 10 preguntas aleatoriamente. Cargaba en la consulta que mostraba en la primera página todo, preguntas y respuestas; mostraba las preguntas y luego cargaba las respuestas elegidas junto con lo demás en un array que serializaba y pasaba a la siguiente página, donde procesaba los aciertos y realizaba el cómputo trabajando sobre el array una vez deserializado...
He leído que algunos guardan en variables de sesión esta cadena y cuando la compra se ejecuta vuelcan los datos en la base, y la duda que tú planteas va en esa línea: cómo volcarlos, serializados o deserializados. Existen opiniones distintas, pero si no te interesa trabajar sobre ellos, ni hacer estadísticas, ni nada parecido, esto es una buena solución. Y luego el borrado es total: olvídate de los borrados en cascada y demás.
En cuanto a por qué se guarda así, imagino que por razones de espacio y para facilitar el trabajo posterior: no son necesarias varias consultas, y basta con programación sobre el array para mostrar los datos y sacar sumas, totales, etc.
Al parecer es muy útil para serializar objetos, y permite usar objetos en sesiones y almacenarlos en bases de datos, pero eso supera con mucho mis conocimientos.

Última edición por jurena; 20/06/2008 a las 12:02
  #5 (permalink)  
Antiguo 20/06/2008, 12:27
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 9 meses
Puntos: 45
Respuesta: "a:1:{i:0;s:17:"Subrubro Numero 1";}" que es esto???

Resumiendo lo que dice Jurena
Se usa para para generar una cadena byte-stream (flujo de octetos) que se pueda almacenar, sin que pierda su estructura y tipo de dato, generalmente se usa para almacenar arrays y objetos.
¿y su uso? pues variado, mayormente para la transferencia de datos via get, post, servicios web, etc.

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #6 (permalink)  
Antiguo 20/06/2008, 12:32
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: "a:1:{i:0;s:17:"Subrubro Numero 1";}" que es esto???

Genetix, da gusto escuchar (leer) a los técnicos...

saludos

Última edición por jurena; 20/06/2008 a las 12:38
  #7 (permalink)  
Antiguo 20/06/2008, 13:29
 
Fecha de Ingreso: marzo-2007
Ubicación: Argentina
Mensajes: 26
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: "a:1:{i:0;s:17:"Subrubro Numero 1";}" que es esto???

Jurena, Genetix : INCREIBLE SUS RESPUESTAS!!!!

muchas gracias, ya me orientaron por donde buscar. 111100000 gracias de nuevo
  #8 (permalink)  
Antiguo 23/06/2008, 02:12
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Respuesta: "a:1:{i:0;s:17:"Subrubro Numero 1";}" que es esto???

Jurena, Genetix: Gracias por la info!
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:32.