Foros del Web » Programando para Internet » PHP »

arrays en bd

Estas en el tema de arrays en bd en el foro de PHP en Foros del Web. hola... Cómo puedo guardar en mi base de datos (Mysql) un array? por ejemplo este: $myarray = array("uno"=>"primero", "dos"=>"segundo"); gracias...
  #1 (permalink)  
Antiguo 23/08/2004, 15:44
 
Fecha de Ingreso: mayo-2004
Mensajes: 159
Antigüedad: 19 años, 10 meses
Puntos: 0
arrays en bd

hola...

Cómo puedo guardar en mi base de datos (Mysql) un array?

por ejemplo este:

$myarray = array("uno"=>"primero", "dos"=>"segundo");

gracias
  #2 (permalink)  
Antiguo 23/08/2004, 15:52
Avatar de The_omars  
Fecha de Ingreso: marzo-2004
Mensajes: 271
Antigüedad: 20 años, 1 mes
Puntos: 0
con un insert dinamico

usa el foreach


Código PHP:

foreach($myarray as $array){


insert into tabla (campoVALUE('$array')


  #3 (permalink)  
Antiguo 23/08/2004, 16:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Una opción sería la que propone The_omars donde crearías registros para los valores (no sé que nivel de normalización deseas para tu BD o requieres ..)

Otro método sería el de serializar tu array con:

serialize() y posteriormente des-serializarlo con unserialize() para reestablecer tu array.

O si sólo deseas valores (no sus indices) .. podrías generar de tu array vía implode() una cadena de los valores separados por algún caracter (coma por ejemplo):

Código PHP:
$string_array=implode (','$myarray); 
Un saludo,
  #4 (permalink)  
Antiguo 23/08/2004, 17:04
 
Fecha de Ingreso: mayo-2004
Mensajes: 159
Antigüedad: 19 años, 10 meses
Puntos: 0
gracias a todos

cluster, podrías explicame mejor lo de serialize()??? ahora lo hago con implode y explode pero necesito también tener los índeces, además de aprender algo nuevo :->
  #5 (permalink)  
Antiguo 23/08/2004, 23:21
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Cuando serializas un array, lo conviertes en una cadena, que contiene todo el array.
Esa cadena la puedes guardar en la BD.
Al des-serializar esa cadena, vuelves a obtener el array.

Función selialize:
http://www.php.net/manual/es/function.serialize.php

Prueba esto para ilustrar:
Código PHP:
$myarray = array("uno"=>"primero""dos"=>"segundo");
$myarray_serializado serialize($myarray);

//Imprime el array serializado para que veas como queda
echo "Array serializado: ".$myarray_serializado;

//Así seriarilizado, lo puedes guardar en la BD como una cadena.
//Luego, puedes hacer una consulta a la BD para recuperarlo y lo pasas por
//la función unserialize() y obtienes el array en su forma original.

//En este caso sólo vamos a des-serializar el array serializado antes:
$array_desserializado unserialize($array_serializado);

//Y lo mostramos a ver cómo quedo:
echo "<br /><br />Array desserializado: <br/>";
echo 
"<pre>";
print_r($array_desserializado);
echo 
"</pre>"
Espero se entienda

Saludos

PD: "El array está serializado... ¿quién lo deserializará?... el deserializador que lo deserialice un buen deserializador será"
  #6 (permalink)  
Antiguo 24/08/2004, 00:11
Avatar de sir_notos  
Fecha de Ingreso: noviembre-2001
Ubicación: Mexicali
Mensajes: 709
Antigüedad: 22 años, 4 meses
Puntos: 1
Cita:
Iniciado por jpinedo
PD: "El array está serializado... ¿quién lo deserializará?... el deserializador que lo deserialice un buen deserializador será"
<offtopic> </offtopic>
__________________
Usuario Registrado de linux #374849
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 18:44.