gracias por ayudarme, pero mire como me trae el arreglo:Array( [Norma] => Array
        (
            [nombrenormas] => XXX
            [detallesnormas] => YYYY
        )

    [Dominio] => Array
        (
            [nombredominios] => 1.-XXX.
        )

    [Objetivogeneral] => Array
        (
            [nombreObjetivo] => YYYY
        )

    [Objetivoespecifico] => Array
        (
            [nombreObjetivoE] => XXXX
        )

)me inserta normas pero no inserta dominio ni ninguna de las demas...como 
recorro al dominio y le asigno la clave foranea de normas para que lo guarde en 
mi modelo de Dominio???osea, para que se inserte el dominio debe ser algo como 
así:( [Norma] => Array
        (
            [nombrenormas] => XXX
            [detallesnormas] => YY
        )

    [Dominio] => Array
        (       
            [nombredominio] => 1XX            [Norma_id] => 02        )
    [Objetivogeneral] => Array
        (
            [nombreObjetivo] => xxxx            [Dominio_id] => 04
        )
en el controlador hago esto:function add() {            if 
(!empty($this->data)) {                                              $name_file 
= $this->data['Upload']['file']['name'];                     $url = WWW_ROOT . 
'files//'.$name_file;                         //url: es la ruta donde se 
encuentra almacenado el archivo cargado desde el form.                       if 
($this->FileUpload->success) {                               $this->set('file', 
$this->FileUpload->finalFile);                               $read = new 
ExcelFiler();                                                           
//instancia de la clase que se encarga de leer el archivo                       
    $read->read_file($url);                         $product = 
$read->read_file($url);                                      if 
(!empty($product)) {                                                     // 
Data que retorna la clase excelFile                                             
 $norma = new Norma();                                                   
//Instancia donde se guarda el array retornado de la clase ExcelFiler           
                                $dominio = new Dominio();                       
                        $dominio->save($product);                               
                                                                
pero, tengo que meterme en el arreglo y agregar una etiqueta con un campo 
(Norma_id) y decirle que ese dominio esta relacionado con una Norma XXX...pero 
en realidad nunca soy nueva con ciclos y recorridas de arrays.....


Date: Wed, 16 Mar 2011 08:27:54 -0430
Subject: Re: [CakePHP-es] Leer Archivo de Excel e insertar su contenido
From: rcamposw...@gmail.com
To: cakephp-es@googlegroups.com

Estas en lo correcto, lo que tienes de dominar es la construccion del arreglo y 
ciclos  para que puedas realizar correctamente la insercion.

Normalmente yo construyo una vista sencilla con todos los campos que debo tener 
para cuando realice $this->save lo haga correctamente. De esta manera verifico 
la consistencia y que las relaciones funcionan en cake.


Luego genero ese arreglo, como lo necesita cake, luego procedo a salvar y me 
funciona.

Cuando no uso vistas procedo a enviarlo por parametros y ejecuto el 
$this->query a mi conveniencia y lo hace correctamente tambien, a excepcion 
cuando lo tengo dentro de un for, que estoy buscando la manera de resolverlo.


Espero haberte ayudado.

Saludos.


El 16 de marzo de 2011 07:44, mayuli plaza gonzalez 
<mayuli14_adri...@hotmail.com> escribió:







hola amigo, gracias por responderme...ya hice el paso 1 y 2 pero cuando hago en 
insert en cada modelo no se inserta...ejemplo:desde el archivo excel yo leo 
toda la informacion pero dicha informacion va almacenada en distintos modelo o 
tablas de mi base de datos
de verdad no se cómo extraer esa informacion que ya tengo, porq creo que el 
rollo es de  trabajar con array y ciclos... por ejemplo que recorra el modelo 
de Norma y lo inserte (luego siga recorriendo y encuentre el dominio y lo 
inserte ASociado a esa Norma, y luego recorra a Objetivos y lo inserte asociado 
a Dominio) y asi sucesivamente con lo demas.

Lo único que he logrado hacer es Insertar Norma Perfectamente pero los demas 
registros asociados no se insertan...No se si me explico....



Date: Tue, 15 Mar 2011 19:49:16 -0430

Subject: Re: [CakePHP-es] Leer Archivo de Excel e insertar su contenido
From: rcamposw...@gmail.com
To: cakephp-es@googlegroups.com


Hola, 

Trato de ayudarte, me considero novato en algunas cosas, no he realizado 
especificamente lo que indicas, pero he realizado algo parecido, yo hago lo 
siguiente:

Primer Paso: Proceso lo que necesite dentro de mi controlador, en tu caso la 
lectura del archivo excel y construyo el arreglo. 



Segundo Paso: En el controlador agrego al resultado del Primer paso lo que me 
haga falta con la logica que yo necesite, en tu caso aqui agregaria el 
norma_id.  Si ya tienes experiencia lo puedes hacer en el paso 1, es 
indistinto, lo que importa es que generes el arreglo que necesitas para que 
cake lo pueda insertar. Esto lo debes de pasar a la vista del formulario 
haciendo uso del $this->set para que puedas hacer el $this->data de cake.



Si son muchos registros y no vas a usar vistas puedes llamar a un for que te 
inserte los registros invocando a un insert que contruyas en tu modelo, esto 
funciona pero actualmente tengo problemas con el $this->query(insert into)  
porque me graba  registros duplicados en la base de datos aunque lo llame una 
vez, estoy tratando de ver como puedo insertar a traves de cake y no usando el 
$this->query 



SAludos,
Reinaldo

El 15 de marzo de 2011 11:24, mayuli plaza gonzalez 
<mayuli14_adri...@hotmail.com> escribió:







Hola Comunidad, estoy leyendo de un archivo excel el contenido que debe ser 
insertado en una base de datos, Sin embargo tengo un pequeño problema conla 
clave foránea de los modelos. y no se insertan en las tablas....

por ejemplo el Dominio está asociado a Norma ¿pero cómo le asigno el idNormas 
al modelo Dominio automáticamente si no es leído desde el archivo de excel ?
hice un for que recorre el archivo de excel de esta manera:for ($i = 0; $i < 2; 
$i++) {                                                 
                        for( $j = 0; $j < 2; $j++) {                            
                                        
                                $product[$root_headers[0]][$norma_headers[$j]] 
= $data->sheets[0]['cells'][$i + 1][$j + 1];
                                
                                for ($k = 0; $k < 4; $k++) {    
                                        for( $l = 0; $l < 3; $l++) {
                                                
$product[$rootDominio_headers[0]][$dominio_headers[0]] = 
$data->sheets[0]['cells'][$k + 1][$l + 1];
                                                
                                                for ($m = 0; $m < 6; $m++) {    
                                                        for( $n = 0; $n < 4; 
$n++){
                                                                
$product[$rootObjGral_headers[0]][$objGral_headers[0]] = 
$data->sheets[0]['cells'][$m + 1][$n + 1];
                                                                
                                                                for ($o = 0; $o 
< 8; $o++) {    
                                                                        for( $p 
= 0; $p < 5; $p++){
                                                                                
$product[$rootObjEsp_headers[0]][$objEsp_headers[0]] = 
$data->sheets[0]['cells'][$o + 1][$p + 1];
                                                
                                                        }
                                                }
                                                                
                                                
                                                        }
                                                }
                                        }

                                }               
                        }
                        
                }
                pr($product); exit();
                return $product;y al imprimir la variable $product me imprime 
lo siguiente:Array

( [Norma] => Array
        (
            [nombrenormas] => Los Mandamientos
            [detallesnormas] => Leyes Religiosas
        )

    [Dominio] => Array
        (
            [nombredominios] => 1.-Amar a Dios sobre todas las Cosas.
        )

    [Objetivogeneral] => Array
        (
            [nombreObjetivo] => 1.1-Ama a tu prójimo como a ti mismo
        )

    [Objetivoespecifico] => Array
        (
            [nombreObjetivoE] => 1.1.1 Con toda la mente y con todo el corazón
        )

)

 pero no deberia estar asi, sino que en cada modelo le debo asignar su 
respectiva asociación. Por ejemplo digo yo que sería así:

Array

( [Norma] => Array
        (
            [nombrenormas] => Los Mandamientos
            [detallesnormas] => Leyes Religiosas
        )

    [Dominio] => Array
        (
            [nombredominio] => 1. - Amar a Dios Sobre todas las cosas           
 [Norma_id] => 02        )


    [Objetivogeneral] => Array
        (
            [nombreObjetivo] => 1.1-Ama a tu prójimo como a ti mismo            
[Dominio_id] => 04


        )

    [Objetivoespecifico] => Array
        (
            [nombreObjetivoE] => 1.1.1 Con toda la mente y con todo el corazón  
          [ObjetivoGeneral_id] => 06    
        )
pero no se cómo ni donde hacerlo.... en el ciclo for de la clase 
MY_READER_excel? o en el Controlador al Cargar el Archivo?.... Bueno, no se si 
me puedan ORIENTAR.... gracias...




                                          





-- 

Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos 
de Google.

Para publicar una entrada en este grupo, envía un correo electrónico a 
cakephp-es@googlegroups.com.

Para anular tu suscripción a este grupo, envía un correo electrónico a 
cakephp-es+unsubscr...@googlegroups.com


Para tener acceso a más opciones, visita el grupo en 
http://groups.google.com/group/cakephp-es?hl=es.









-- 

Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos 
de Google.

Para publicar una entrada en este grupo, envía un correo electrónico a 
cakephp-es@googlegroups.com.

Para anular tu suscripción a este grupo, envía un correo electrónico a 
cakephp-es+unsubscr...@googlegroups.com


Para tener acceso a más opciones, visita el grupo en 
http://groups.google.com/group/cakephp-es?hl=es.
                                          





-- 

Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos 
de Google.

Para publicar una entrada en este grupo, envía un correo electrónico a 
cakephp-es@googlegroups.com.

Para anular tu suscripción a este grupo, envía un correo electrónico a 
cakephp-es+unsubscr...@googlegroups.com


Para tener acceso a más opciones, visita el grupo en 
http://groups.google.com/group/cakephp-es?hl=es.








-- 

Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos 
de Google.

Para publicar una entrada en este grupo, envía un correo electrónico a 
cakephp-es@googlegroups.com.

Para anular tu suscripción a este grupo, envía un correo electrónico a 
cakephp-es+unsubscr...@googlegroups.com


Para tener acceso a más opciones, visita el grupo en 
http://groups.google.com/group/cakephp-es?hl=es.
                                          

-- 
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos 
de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a 
cakephp-es@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a 
cakephp-es+unsubscr...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en 
http://groups.google.com/group/cakephp-es?hl=es.

Responder a