Foros del Web » Programando para Internet » PHP »

Cómo ingresar un array dinámico a una bd??

Estas en el tema de Cómo ingresar un array dinámico a una bd?? en el foro de PHP en Foros del Web. un array dinámico y de índice asociativo. Llevo días sin saber como hacerlo.. al imprimir el array con var_dump($array) es así: Código PHP: array( 7 ...
  #1 (permalink)  
Antiguo 17/03/2009, 10:47
 
Fecha de Ingreso: octubre-2008
Mensajes: 8
Antigüedad: 15 años, 6 meses
Puntos: 0
Cómo ingresar un array dinámico a una bd??

un array dinámico y de índice asociativo.
Llevo días sin saber como hacerlo..

al imprimir el array con var_dump($array)
es así:
Código PHP:
array(7) {
  [
"category_id"]=>
  
string(1"1"
  
["parent_id"]=>
  
string(1"0"
  
["name"]=>
  
string(4"Root"
  
["is_active"]=>
  
string(1"1"
  
["position"]=>
  
string(1"1"
  
["level"]=>
  
string(1"0"
  
["children"]=>
  array(
2) {
    [
0]=>
    array(
7) {
      [
"category_id"]=>
      
string(1"3"
      
["parent_id"]=>
      
string(1"1"
      
["name"]=>
      
string(12"Root Catalog"
      
["is_active"]=>
      
string(1"1"
      
["position"]=>
      
string(1"3"
      
["level"]=>
      
string(1"1"
      
["children"]=>
      array(
4) {
        [
0]=>
        array(
7) {
          [
"category_id"]=>
          
string(2"10"
          
["parent_id"]=>
          
string(1"3"
          
["name"]=>
          
string(9"Furniture"
          
["is_active"]=>
          
string(1"1"
          
["position"]=>
          
string(2"10"
          
["level"]=>
          
string(1"2"
          
["children"]=>
          array(
2) {
            [
0]=>
            array(
7) {
              [
"category_id"]=>
              
string(2"22"
              
["parent_id"]=>
              
string(2"10"
              
["name"]=>
              
string(11"Living Room"
              
["is_active"]=>
              
string(1"1"
              
["position"]=>
              
string(2"22"
              
["level"]=>
              
string(1"3"
              
["children"]=>
              array(
0) { ..... etc (es largo
mi problema es que no se como ingresar cada nivel del arreglo a la base de datos, traté de recorrerlo con una función recursiva, pero se va recorriendo de uno en uno... por lo tantono puedo acceder a los 7 datos de una vez que necesito para hacer el insert :(

función recursiva que uso para recorrerlo:

Código PHP:
function recorrer_array($array){
        foreach(
$array as $indice => $valor){

          
                if (
is_array($valor)){
                       
recorrer_array($valor);
                } 
espero se haya entendido....
como ingreso los datos del array a la base de datos????

Muchas gracias.

Última edición por laleli; 17/03/2009 a las 11:27
  #2 (permalink)  
Antiguo 17/03/2009, 10:50
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Cómo ingresar un array dinámico a una bd??

mmm.... has probado las funciones serialize() y unserialize()

te sugiero, leas en el manual y apliques lo que aprendas....

http://php.net/unserialize
http://php.net/serialize

demás, los índices nunca serán arrays..
Cita:
if (is_array($indice){
recorrer_array($indice);
}
nunca!

Código PHP:
$foo = array(1,3,array(5=>7,9));
$bar serialize($foo);

$sql "INSERT INTO tabla(arreglo_serializado) VALUES('$bar')";

// ... 
es mas sencillo que lo que intentas, suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 17/03/2009, 10:57
 
Fecha de Ingreso: octubre-2008
Mensajes: 8
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Cómo ingresar un array dinámico a una bd??

Cita:
Iniciado por pateketrueke Ver Mensaje
mmm.... has probado las funciones serialize() y unserialize()

te sugiero, leas en el manual y apliques lo que aprendas....



demás, los índices nunca serán arrays..


nunca!

Código PHP:
$foo = array(1,3,array(5=>7,9));
$bar serialize($foo);

$sql "INSERT INTO tabla(arreglo_serializado) VALUES('$bar')";

// ... 
es mas sencillo que lo que intentas, suerte!
uhmm..
gracias por responder...

eso de los índices tienes razón, la función la copié de otro lado y no le puse atención a ese detalle :/

y acerca de serialize... por lo que vi esa función entrega una cadena, y yo necesito los datos estructurados tal como están en el array.
  #4 (permalink)  
Antiguo 17/03/2009, 11:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Cómo ingresar un array dinámico a una bd??

Cita:
Iniciado por laleli Ver Mensaje
uhmm.. [...] yo necesito los datos estructurados tal como están en el array.
ese es el problema, que en base de datos NO hay tipo array ... !!

por eso, debes codificar el array (serialize()) como cadena, y cuando lo quieras recuperar usas su función inversa (unserialize()) para que te regenere tu array....

PDTA: primero haz la prueba, y luego decides si es lo mejor o no....

suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 17/03/2009, 11:10
 
Fecha de Ingreso: octubre-2008
Mensajes: 8
Antigüedad: 15 años, 6 meses
Puntos: 0
Cita:
Iniciado por pateketrueke Ver Mensaje
ese es el problema, que en base de datos NO hay tipo array ... !!

por eso, debes codificar el array (serialize()) como cadena, y cuando lo quieras recuperar usas su función inversa (unserialize()) para que te regenere tu array....

PDTA: primero haz la prueba, y luego decides si es lo mejor o no....

suerte!
No, no quise decir eso, no es que quiera ingresar el array entero en un solo campo de la base de datos :S , sino que obtener los campos por separado:
por ej:
category_id = 1
parnt_id = 0
name = root... etc

y a partir de esos campos estructurar la consulta sql (Esos campos están ordenaditos en el array)
Es eso, se entiende?

..........

Última edición por GatorV; 17/03/2009 a las 11:49
  #6 (permalink)  
Antiguo 18/03/2009, 11:58
 
Fecha de Ingreso: octubre-2008
Mensajes: 8
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Cómo ingresar un array dinámico a una bd??

voy a explicar mejor mi problema:

no quiero ingresar el array completo a lo bruto, si no cada campo del arreglo a una base de datos que ya está lista,el problema es que no se como acceder a todos los campos que deseo ingresar de una vez:

category_id, parent id, name, is active, position... etc. todos esos van en un insert, y de la forma que lo recorro solo tengo acceso a uno por ciclo.

Última edición por laleli; 18/03/2009 a las 12:10
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 21:22.