Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Guardar datos

Estas en el tema de Guardar datos en el foro de PHP en Foros del Web. Necesito guardar informacion sobre elementos que tienene una id y pueden ser : Elemento1, Elemento2, Elemento3, Elemento4... Cada elemento tiene propiedades con su valor : ...
  #1 (permalink)  
Antiguo 13/07/2013, 18:51
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 10 meses
Puntos: 29
Guardar datos

Necesito guardar informacion sobre elementos que tienene una id y pueden ser :

Elemento1, Elemento2, Elemento3, Elemento4...

Cada elemento tiene propiedades con su valor :

Elemento1{
top:"23px";
left:"40px";
...
}

Como guardar los ?? En una base de datos o en un archivo.
Si es en un archivo como escribir sin afectar a los demas elementos o demas propiedades ???

Me entenedeis?
  #2 (permalink)  
Antiguo 13/07/2013, 19:13
Avatar de alberto510a  
Fecha de Ingreso: abril-2013
Mensajes: 351
Antigüedad: 11 años, 6 meses
Puntos: 35
Te recomiendo tutoriales sobre mysql en concreto de como usar mysqli_query para bds o fopen, fputs y demás para archivos.

Saludos.
  #3 (permalink)  
Antiguo 13/07/2013, 19:15
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Guardar datos

Código PHP:
Ver original
  1. <?php
  2.  
  3. $elemento = new StdClass;
  4. $elemento->top ='23px';
  5. $elemento->left ='40px';
  6.  
  7. $ser = serialize ($elemento); // se puede guardar en la DB un campo de longitud suficiente o en un archivo asi
  8. var_dump ($ser);
  9.  
  10. // Te devuelves con unserialize()

Claro que podrias haber hecho lo mismo con un array asociativo... pero la ventaja asi como esta es que tu clase puede ser algo mas inteligente que la generica StdClass y "siempre" (no siempre realmente) podras serializarla y almacenarla.
__________________
Salu2!

Última edición por Italico76; 13/07/2013 a las 19:23
  #4 (permalink)  
Antiguo 14/07/2013, 04:06
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 10 meses
Puntos: 29
Respuesta: Guardar datos

Cita:
Iniciado por Italico76 Ver Mensaje
Código PHP:
Ver original
  1. <?php
  2.  
  3. $elemento = new StdClass;
  4. $elemento->top ='23px';
  5. $elemento->left ='40px';
  6.  
  7. $ser = serialize ($elemento); // se puede guardar en la DB un campo de longitud suficiente o en un archivo asi
  8. var_dump ($ser);
  9.  
  10. // Te devuelves con unserialize()

Claro que podrias haber hecho lo mismo con un array asociativo... pero la ventaja asi como esta es que tu clase puede ser algo mas inteligente que la generica StdClass y "siempre" (no siempre realmente) podras serializarla y almacenarla.
Hola con unserialize() lo guardas en bd y luego para cambiar los valores o para leerlo ?? Para cambiar seria leer todo, cambiar algun valor y sobreescribir lo ?

Y para leer que funciona se utiliza ? serialize() ?? Tengo hecho un lio

Saludos
  #5 (permalink)  
Antiguo 14/07/2013, 06:14
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Guardar datos

Hola.... esta super-bien explicado en el manual

serialize() crea un string que puedes guardar en la DB o en un archivo
unserialize() .. coje el array y lo convierte en la estructura de datos que tenias antes de serializar (objeto, array, json,..)

Asi pues...

Cita:
objeto / array ---> serialize() ----> DB

DB ---> unserialize() ----> objeto / array
__________________
Salu2!
  #6 (permalink)  
Antiguo 14/07/2013, 06:17
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Guardar datos

Cita:
Iniciado por Italico76 Ver Mensaje
Código PHP:
Ver original
  1. <?php
  2.  
  3. $elemento = new StdClass;
  4. $elemento->top ='23px';
  5. $elemento->left ='40px';
  6.  
  7. $ser = serialize ($elemento); // se puede guardar en la DB un campo de longitud suficiente o en un archivo asi
  8. var_dump ($ser);
  9.  
  10. // Te devuelves con unserialize()

Claro que podrias haber hecho lo mismo con un array asociativo... pero la ventaja asi como esta es que tu clase puede ser algo mas inteligente que la generica StdClass y "siempre" (no siempre realmente) podras serializarla y almacenarla.
Código PHP:
<?php
// Se serializan tambien arrays

$elementos = array();
$elementos['top'] = '23px';
$elementos['left'] ='40px';

$ser serialize ($elementos);
El resultado es una cadena (string) de lo mas normal... la puedes imprimir con ECHO:

Cita:
a:2:{s:3:"top";s:4:"23px";s:4:"left";s:4:"40px";}
RECUERDA que las bases de datos relacionales como mySQL no tienen tipos de datos complejos como objetos u arrays asi que necesariamente esas estructuras se deben almacenar serializadas.


PD: queria editar y se me fue este mensaje por error......... Json se puede serializar de forma personalizada pero normalmente se usa json_encode() ... en fin supongo que hasta las listas dobles, los arboles y demas estructuras tambien son serializables
__________________
Salu2!

Última edición por Italico76; 14/07/2013 a las 06:36
  #7 (permalink)  
Antiguo 14/07/2013, 09:35
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 10 meses
Puntos: 29
Respuesta: Guardar datos

Muchas gracias Italico76 funciona perfectamente. Ahora ya tengo una idea de como los guardaria. Ahora falta pensar pasarlo a javascript pero esto ya lo hare.

Saludos
  #8 (permalink)  
Antiguo 14/07/2013, 09:59
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Guardar datos

Pues.... es un simple INSERT INTO en un tu base de datos, recuerda que el serializado es una simple cadena... asi que solo debes elegir en el campo de la tabla, el tipo adecuado teniendo en cuenta el tamaño de los serializados... quizas varchar[255] te alcance... quizas no

Si los datos vienen de JS... pues los pasas como JSON
__________________
Salu2!
  #9 (permalink)  
Antiguo 14/07/2013, 13:41
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 10 meses
Puntos: 29
Respuesta: Guardar datos

Cita:
Iniciado por Italico76 Ver Mensaje
Pues.... es un simple INSERT INTO en un tu base de datos, recuerda que el serializado es una simple cadena... asi que solo debes elegir en el campo de la tabla, el tipo adecuado teniendo en cuenta el tamaño de los serializados... quizas varchar[255] te alcance... quizas no

Si los datos vienen de JS... pues los pasas como JSON
Buenos esque no se lo que es JSON, voy a ver lo.

Etiquetas: Ninguno
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 13:03.