Re: Loop + save() = Problema do mau

2007-10-19 Por tôpico hostdesigner

Já tentei break, exit, die inclusive return (nem faz sentido, mas,
tentei...) O problema é que não funciona mesmo dependendo da
quantidade de registros retornados pela consulta de $this->Question-
>findAll() os calculos ficam errados...

No final das contas quando não falta um registro adiciona 1 ou 5 a
mais.
O problema é que se eu fizer como está lá em cima eu tenho
$researchNum = 23 e $questionNum = 5, o calculo dá 115, mas, se eu
tiver que fazer o sistema descobrir sozinho onde é que ele deve parar
o loop dá problema, já que está inserindo o dobro eu tenho que dividir
o resultado da multiplicação por 2 (115/2=57,5) e se arredondar vai
ter um registro a mais...


Alguma outra sugestão?

Falopa!


--~--~-~--~~~---~--~~
Recebeu esta mensagem porque está inscrito em Grupo "Cake PHP Português" do 
Grupos Google.
 Para enviar mensagens para este grupo, envie um email para 
cake-php-pt@googlegroups.com
 Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED]
 Para mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-PT
-~--~~~~--~~--~--~---



Re: Loop + save() = Problema do mau

2007-10-19 Por tôpico Rafael Barbosa
Tenta trocar o exit por break =)

On 10/19/07, hostdesigner <[EMAIL PROTECTED]> wrote:
>
>
> Bom, a quem se interessar (se é que alguém está lendo isso...)
>
> Eu estava fazendo uns testes baseados em POGramação avançada (poe
> gambiarra nisso), e percebi que o loop do foreach esta realmente
> rodando duas vezes, ainda não descobri por que, mas...
>
> $researchNum = $this->Research->getNumRows();
> $questionNum = count( $questionData );
> $prova=0;
>
> foreach ( $questionData as $question )
> {
>
>$this->Question->id = null;
>$this->Question->save( array( 'institutions_id' => $this-
> >session_data( 'institutions_id' ), 'researchs_id' =>
> $research['Research']['id'], 'question' => $question['Question']
> ['question'], 'public' => '0' ) );
>
>if( $iterator == ( $researchNum * $questionNum ) )
>{
>exit;
>}
> }
>
> Fazendo isso quando ele alcança o número máximo de registros que devem
> ser inseridos (no caso 115) ele para. Da forma como está ai em cima
> funciona perfeitamente a não ser pelo fato de que o exit para o
> processamento de qualquer código abaixo dele... sendo assim, o cake
> não retorna mais nada nem layout nem HTML :(
>
> E agora alguém me dá uma luz...
>
> Falopa!
>
>
> >
>


-- 
Rafael Barbosa
Analista de Sistemas Web
Gradua Networks

--~--~-~--~~~---~--~~
Recebeu esta mensagem porque está inscrito em Grupo "Cake PHP Português" do 
Grupos Google.
 Para enviar mensagens para este grupo, envie um email para 
cake-php-pt@googlegroups.com
 Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED]
 Para mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-PT
-~--~~~~--~~--~--~---



Re: Loop + save() = Problema do mau

2007-10-19 Por tôpico hostdesigner

Bom, a quem se interessar (se é que alguém está lendo isso...)

Eu estava fazendo uns testes baseados em POGramação avançada (poe
gambiarra nisso), e percebi que o loop do foreach esta realmente
rodando duas vezes, ainda não descobri por que, mas...

$researchNum = $this->Research->getNumRows();
$questionNum = count( $questionData );
$prova=0;

foreach ( $questionData as $question )
{

$this->Question->id = null;
$this->Question->save( array( 'institutions_id' => $this-
>session_data( 'institutions_id' ), 'researchs_id' =>
$research['Research']['id'], 'question' => $question['Question']
['question'], 'public' => '0' ) );

if( $iterator == ( $researchNum * $questionNum ) )
{
exit;
}
}

Fazendo isso quando ele alcança o número máximo de registros que devem
ser inseridos (no caso 115) ele para. Da forma como está ai em cima
funciona perfeitamente a não ser pelo fato de que o exit para o
processamento de qualquer código abaixo dele... sendo assim, o cake
não retorna mais nada nem layout nem HTML :(

E agora alguém me dá uma luz...

Falopa!


--~--~-~--~~~---~--~~
Recebeu esta mensagem porque está inscrito em Grupo "Cake PHP Português" do 
Grupos Google.
 Para enviar mensagens para este grupo, envie um email para 
cake-php-pt@googlegroups.com
 Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED]
 Para mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-PT
-~--~~~~--~~--~--~---



Re: Loop + save() = Problema do mau

2007-10-19 Por tôpico hostdesigner

Esqueci para executar o método é só acessar
http://aplicacao/admin/perguntas/aplicar/1/1

vai executar o mesmo que eu estou fazendo aqui na minha máquina.

Falopa!


--~--~-~--~~~---~--~~
Recebeu esta mensagem porque está inscrito em Grupo "Cake PHP Português" do 
Grupos Google.
 Para enviar mensagens para este grupo, envie um email para 
cake-php-pt@googlegroups.com
 Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED]
 Para mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-PT
-~--~~~~--~~--~--~---



Re: Loop + save() = Problema do mau

2007-10-19 Por tôpico hostdesigner

Caras eu realmente estou pra desistir...

Advinha só eu fiz usando save() sem informar o ID e ele fez dois
inserts e atualizou o resto <_<

Fiz também usando create() (como você citou) e tchan tchan tchan,
MALDITO não fez nada, nem inseriu, nem atualizou muito menos
removeu...

Que porr@ :D Como diriam os americanos
"What a hell this is?"

Pessoal estou ficando louco com isso vou publicar meu controller
fudido aqui juntamente com as tabelas e respectivos registros se
alguma alma caridosa puder testar ai pra ver se funciona normalmente
eu agradeço.

CONTROLLER
checkSession();

// The title
$this->set( 'title', "Aplicar perguntas para enquete" );

$prova = 0;

if( empty( $researches_id ) )
{

// Show the message error
$this->Session->setFlash( 'Dados inválidos' );

// Redirect user
$this->redirect( '/admin/perguntas/'. $researches_id );
}else{


// Retrieve the research question
$researchQuestion = $this->Research->read( null, 
$researches_id );

// Format the values
$dateTime = explode( " ", $researchQuestion['Research']
['created'] );
$date = explode( "-", $dateTime[0] );
$time = explode( ":", $dateTime[1] );

// Search aplication to extra research
$arrayConditions = array( 'Research.id != '. 
$researches_id .'',
'Research.endDate' => $researchQuestion['Research']['endDate']/*,
'YEAR(Research.created)' => $date[0], 'MONTH(Research.created)' =>
$date[1], 'DAY(Research.created)' => $date[2],
'HOUR(Research.created)' => $time[0]/*, 'MINUTE(Research.created)' =>
$time[1]*/ );
$arrayFields = array( );

$researchData = $this->Research->findAll( 
$arrayConditions,
$arrayFields );


// Loop's research related
foreach( $researchData as $research )
{

// Search the questions related
$arrayConditions = array( 
'Question.researchs_id' =>
$researches_id );
$arrayFields = array( );

$questionData = 
$this->Question->findAll( $arrayConditions,
$arrayFields );

foreach ( $questionData as $question )
{

/**/
$this->Question->id = null;
$this->Question->create( array( 
'institutions_id' => $this-
>session_data( 'institutions_id' ), 'researchs_id' =>
$research['Research']['id'], 'question' => $question['Question']
['question'], 'public' => '0' ) );
}

}
}

}


}
?>

TABELAS SQL

CREATE TABLE `researches` (
  `id` bigint(20) NOT NULL auto_increment,
  `courses_id` bigint(20) NOT NULL default '0',
  `disciplines_id` int(20) NOT NULL,
  `institutions_id` int(4) unsigned NOT NULL default '0',
  `title` text collate latin1_general_ci NOT NULL,
  `comments` text collate latin1_general_ci,
  `endDate` datetime default NULL,
  `created` datetime default NULL,
  `anonymous` tinyint(1) default '0',
  `obligatorReply` tinyint(1) default '0',
  `flag` int(1) default '1',
  `share` tinyint(1) default '0',
  PRIMARY KEY  (`id`),
  KEY `researchs_FKIndex1` (`institutions_id`),
  KEY `researchs_FKIndex2` (`courses_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci
AUTO_INCREMENT=83 ;

--
-- Extraindo dados da tabela `researches`
--

INSERT INTO `researches` (`id`, `courses_id`, `disciplines_id`,
`institutions_id`, `title`, `comments`, `endDate`, `created`,
`anonymous`, `obligatorReply`, `flag`, `share`) VALUES
(1, 30, 63, 1, 'Marcos Emilio Correa Moura - 2º TMA/Mecânica de
Motores', NULL, '2007-10-28 20:56:00', '2007-10-18 20:56:42', 0, 0, 1,
0),
(2, 30, 64, 1, 'Moacir Coppola - 2º TMA/Cálculo', NULL, '2007-10-28
20:56:00', '2007-10-18 20:56:42', 0, 0, 1, 0),
(3, 30, 85, 1, 'Elias da Silva - 2º TMA/Desenho', NULL, '2007-10-28
20:56:00', '2007-10-18 20:56:42', 0, 0, 1, 0),
(4, 30, 86, 1, 'Claudilene Fidelis - 2º TMA/Fundamentos da Hidráulica
e Pneumática', NULL, '2007-10-28 20:56:00', '2007-10-18 20:56:43', 0,
0, 1, 0),
(5, 30, 84, 1, 'Lúcia Maria Barbosa do Nascimento - 2º TMA/Metodologia
da Pesquisa', NULL, '2007-10-28 20:56:00', '2007-10-18 20:56:43', 0,
0, 1, 0),
(6, 30, 69, 1, 'Luiz Alfredo Pacheco - 3º TMA/Inglês Instrumental',
NULL, '2007-10-28 20:56:00', '2007-10-18 20:56:43', 0, 0, 1, 0),

Re: Loop + save() = Problema do mau

2007-10-19 Por tôpico Marcio Trindade

Designer,

eu não entendi direito mas se vc precisa pegar um registro do banco e
grava-lo novamente com id diferente vc pode fazer isso facilmente, mas
não da forma q vc citou.

ERRADO
$this->MODEL->save( array( 'campo' => 'valores' ) );
$this->MODEL->create();

O certo seria você pegar o registro, retirar o id e usar somente o
save ou soente o create. Utilizando os 2 você vai fazer 2 requisições
ao banco.


utilize o save sem ter o ID
$this->MODEL->save( array( 'campo' => 'valores' ) );

ou

utilize o create passando os dados
$this->MODEL->create( array( 'campo' => 'valores' ) );


pois como vc pode ver o create recebe o $data.
http://api.cakephp.org/1.2/class_model.html#ffd04e1cae18cb61d1e219f5283eab35


espero ter ajudado


On Oct 18, 9:02 pm, hostdesigner <[EMAIL PROTECTED]> wrote:
> O retorno do questionData é isso 5 indices, mas, quando eu executo o
> save ele cria 2 registros para cada indice <_<
>
> Array
> (
> [0] => Array
> (
> [Question] => Array
> (
> [id] => 1
> [institutions_id] => 1
> [researchs_id] => 1
> [question] => Pergunta 1
> [public] => 0
> [created] => 2007-10-18 20:56:59
> )
>
> [Institution] => Array
> (
> [id] => 1
> [nameInstitution] => Faculdades Unicen
> [address] => Virgílio Favetti
> [city] => Tangará da Serra
> [estate] => MT
> [prefix] => UNI
> [mail] => [EMAIL PROTECTED]
> [created] => 2007-08-25 11:30:50
> [modified] => 2007-08-25 11:31:03
> [flag] => 1
> )
>
> [Research] => Array
> (
> [id] => 1
> [courses_id] => 30
> [disciplines_id] => 63
> [institutions_id] => 1
> [title] => Marcos Emilio Correa Moura - 2º TMA/
> Mecânica de Motores
> [comments] =>
> [endDate] => 2007-10-28 20:56:00
> [created] => 2007-10-18 20:56:42
> [anonymous] => 0
> [obligatorReply] => 0
> [flag] => 1
> [share] => 0
> )
>
> )
>
> [1] => Array
> (
> [Question] => Array
> (
> [id] => 2
> [institutions_id] => 1
> [researchs_id] => 1
> [question] => Pergunta 2
> [public] => 0
> [created] => 2007-10-18 20:57:06
> )
>
> [Institution] => Array
> (
> [id] => 1
> [nameInstitution] => Faculdades Unicen
> [address] => Virgílio Favetti
> [city] => Tangará da Serra
> [estate] => MT
> [prefix] => UNI
> [mail] => [EMAIL PROTECTED]
> [created] => 2007-08-25 11:30:50
> [modified] => 2007-08-25 11:31:03
> [flag] => 1
> )
>
> [Research] => Array
> (
> [id] => 1
> [courses_id] => 30
> [disciplines_id] => 63
> [institutions_id] => 1
> [title] => Marcos Emilio Correa Moura - 2º TMA/
> Mecânica de Motores
> [comments] =>
> [endDate] => 2007-10-28 20:56:00
> [created] => 2007-10-18 20:56:42
> [anonymous] => 0
> [obligatorReply] => 0
> [flag] => 1
> [share] => 0
> )
>
> )
>
> [2] => Array
> (
> [Question] => Array
> (
> [id] => 3
> [institutions_id] => 1
> [researchs_id] => 1
> [question] => Pergunta 3
> [public] => 0
> [created] => 2007-10-18 20:57:13
> )
>
> [Institution] => Array
> (
> [id] => 1
> [nameInstitution] => Faculdades Unicen
> [address] => Virgílio Favetti
> [city] => Tangará da Serra
> [estate] => MT
> [prefix] => UNI
> [mail] => [EMAIL PROTECTED]
> [created] => 2007-08-25 11:30:50
> [modified] => 2007-08-25 11:31:03
> [flag] => 1
> )
>
> [Research] => Array
> (
> 

Re: Loop + save() = Problema do mau

2007-10-18 Por tôpico hostdesigner

O retorno do questionData é isso 5 indices, mas, quando eu executo o
save ele cria 2 registros para cada indice <_<

Array
(
[0] => Array
(
[Question] => Array
(
[id] => 1
[institutions_id] => 1
[researchs_id] => 1
[question] => Pergunta 1
[public] => 0
[created] => 2007-10-18 20:56:59
)

[Institution] => Array
(
[id] => 1
[nameInstitution] => Faculdades Unicen
[address] => Virgílio Favetti
[city] => Tangará da Serra
[estate] => MT
[prefix] => UNI
[mail] => [EMAIL PROTECTED]
[created] => 2007-08-25 11:30:50
[modified] => 2007-08-25 11:31:03
[flag] => 1
)

[Research] => Array
(
[id] => 1
[courses_id] => 30
[disciplines_id] => 63
[institutions_id] => 1
[title] => Marcos Emilio Correa Moura - 2º TMA/
Mecânica de Motores
[comments] =>
[endDate] => 2007-10-28 20:56:00
[created] => 2007-10-18 20:56:42
[anonymous] => 0
[obligatorReply] => 0
[flag] => 1
[share] => 0
)

)

[1] => Array
(
[Question] => Array
(
[id] => 2
[institutions_id] => 1
[researchs_id] => 1
[question] => Pergunta 2
[public] => 0
[created] => 2007-10-18 20:57:06
)

[Institution] => Array
(
[id] => 1
[nameInstitution] => Faculdades Unicen
[address] => Virgílio Favetti
[city] => Tangará da Serra
[estate] => MT
[prefix] => UNI
[mail] => [EMAIL PROTECTED]
[created] => 2007-08-25 11:30:50
[modified] => 2007-08-25 11:31:03
[flag] => 1
)

[Research] => Array
(
[id] => 1
[courses_id] => 30
[disciplines_id] => 63
[institutions_id] => 1
[title] => Marcos Emilio Correa Moura - 2º TMA/
Mecânica de Motores
[comments] =>
[endDate] => 2007-10-28 20:56:00
[created] => 2007-10-18 20:56:42
[anonymous] => 0
[obligatorReply] => 0
[flag] => 1
[share] => 0
)

)

[2] => Array
(
[Question] => Array
(
[id] => 3
[institutions_id] => 1
[researchs_id] => 1
[question] => Pergunta 3
[public] => 0
[created] => 2007-10-18 20:57:13
)

[Institution] => Array
(
[id] => 1
[nameInstitution] => Faculdades Unicen
[address] => Virgílio Favetti
[city] => Tangará da Serra
[estate] => MT
[prefix] => UNI
[mail] => [EMAIL PROTECTED]
[created] => 2007-08-25 11:30:50
[modified] => 2007-08-25 11:31:03
[flag] => 1
)

[Research] => Array
(
[id] => 1
[courses_id] => 30
[disciplines_id] => 63
[institutions_id] => 1
[title] => Marcos Emilio Correa Moura - 2º TMA/
Mecânica de Motores
[comments] =>
[endDate] => 2007-10-28 20:56:00
[created] => 2007-10-18 20:56:42
[anonymous] => 0
[obligatorReply] => 0
[flag] => 1
[share] => 0
)

)

[3] => Array
(
[Question] => Array
(
[id] => 4
[institutions_id] => 1
[researchs_id] => 1
[question] => Pergunta 4
[public] => 0
[created] => 2007-10-18 20:57:21
)

[Institution] => Array
(
[id] => 1
[nameInstitution] => Faculdades Unice

Re: Loop + save() = Problema do mau

2007-10-18 Por tôpico Tulio Faria

Dá um pr($questionData) e manda o resultado pra cá

falopa ;)

On 18 out, 15:58, hostdesigner <[EMAIL PROTECTED]> wrote:
> @ TULIO FARIA
> Esqueci de mencionar, o meu problema não era o citado no artigo
> (Adicionar um registro e os outros são atualizados) o meu caso é que o
> cake está salvando registros a mais, o dobro do solicitado.
>
> Falopa!


--~--~-~--~~~---~--~~
Recebeu esta mensagem porque está inscrito em Grupo "Cake PHP Português" do 
Grupos Google.
 Para enviar mensagens para este grupo, envie um email para 
cake-php-pt@googlegroups.com
 Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED]
 Para mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-PT
-~--~~~~--~~--~--~---



Re: Loop + save() = Problema do mau

2007-10-18 Por tôpico hostdesigner

@ TULIO FARIA
Esqueci de mencionar, o meu problema não era o citado no artigo
(Adicionar um registro e os outros são atualizados) o meu caso é que o
cake está salvando registros a mais, o dobro do solicitado.

Falopa!


--~--~-~--~~~---~--~~
Recebeu esta mensagem porque está inscrito em Grupo "Cake PHP Português" do 
Grupos Google.
 Para enviar mensagens para este grupo, envie um email para 
cake-php-pt@googlegroups.com
 Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED]
 Para mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-PT
-~--~~~~--~~--~--~---



Re: Loop + save() = Problema do mau

2007-10-18 Por tôpico hostdesigner

Você que pensa, cara eu estou mechendo nisso desde ontém já tentei
burlar este problema de diversas formas, mas, o cake insiste em me
desafiar (pior que ele está ganhando <_<).

Já tentei fazer um loop e adicionar em baixo o $this->MODEL->create()
que tem mais ou menos a mesma funcionalidade do $this->MODEL->id =
null, o meu problema é quase o mesmo...

Quando eu adiciono um registro o cake entende que é pra adicionar dois
registros, ou seja se eu informo um array ele adiciona dois registros
e assim vai sempre o dobro.

Fiz um teste usando até mysql_query() assim
$insert = "INSERT INTO `questions` VALUES
(NULL, 1, 1, 'Como você avalia o dominio do conteudo de seu
professor?', 0, NOW()),
(NULL, 1, 1, 'O professor disponibiliza o material de aula no
portal?', 0, NOW()),
(NULL, 1, 1, 'Quanto ao conteúdo, seu professor segue todo o plano
agendado?', 0, NOW()),
(NULL, 1, 1, 'Quem sou eu?', 0, NOW()),
(NULL, 1, 1, 'Seu professor é pontual aos horários das aulas?', 0,
NOW());";
mysql_query( $insert )or die( mysql_error( ) );

O cake adiciona 10 registros note que eram apenas 5 inserções. O que
pode ser isso?

Falopa!


--~--~-~--~~~---~--~~
Recebeu esta mensagem porque está inscrito em Grupo "Cake PHP Português" do 
Grupos Google.
 Para enviar mensagens para este grupo, envie um email para 
cake-php-pt@googlegroups.com
 Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED]
 Para mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-PT
-~--~~~~--~~--~--~---



Re: Loop + save() = Problema do mau

2007-10-18 Por tôpico Tulio Faria

Alias,

num é tão do mal assim :)

On 17 Out, 22:09, hostdesigner <[EMAIL PROTECTED]> wrote:
> Preciso resgatar alguns registros e adiciona-los na mesma tabela, mas,
> com o ID diferente, ou seja, estou duplicando o registro.
>
> Para tal fiz uma consulta que me retorna 23 registros logo abaixo fiz
> um foreach para percorrer os registros retornados e já inseri-los
> novamente usando save(), só que quando eu executo o código usando
>
> $this->MODEL->save( array( 'campo' => 'valores' ) );
>
> O cake tenta atualizar os registros, não é isso que quero... E quando
> tento assim
>
> $this->MODEL->save( array( 'campo' => 'valores' ) );
> $this->MODEL->create();
>
> O cake cria 2000 e lá vai registros, o mais extranho é que quando eu
> coloco um array para simular uma inserção ele retorna certo, só não
> consegue adicionar.
>
> Vai a cópia do meu método, Alguém faz idéia de como solucionar isso?
>
> function admin_aplicar( $researches_id, $action_id )
> {
>
> // Is Allowed?
> $this->checkSession();
>
> // The title
> $this->set( 'title', "Aplicar perguntas para enquete" );
>
> $prova = 0;
>
> if( empty( $researches_id ) )
> {
>
> // Show the message error
> $this->Session->setFlash( 'Dados inválidos' );
>
> // Redirect user
> $this->redirect( '/admin/perguntas/'. $researches_id 
> );
> }else{
>
> // Retrieve the research question
> $researchQuestion = $this->Research->read( null, 
> $researches_id );
>
> // Format the values
> $dateTime = explode( " ", 
> $researchQuestion['Research']
> ['created'] );
> $date = explode( "-", $dateTime[0] );
> $time = explode( ":", $dateTime[1] );
>
> // Search aplication to extra research
> $arrayConditions = array( 'Research.id != '. 
> $researches_id .'',
> 'Research.endDate' => $researchQuestion['Research']['endDate']/*,
> 'YEAR(Research.created)' => $date[0], 'MONTH(Research.created)' =>
> $date[1], 'DAY(Research.created)' => $date[2],
> 'HOUR(Research.created)' => $time[0]/*, 'MINUTE(Research.created)' =>
> $time[1]*/ );
> $arrayFields = array( );
>
> $researchData = $this->Research->findAll( 
> $arrayConditions,
> $arrayFields );
>
> // Loop's research related
> foreach( $researchData as $research )
> {
>
> // Search the questions related
> $arrayConditions = array( );
> $arrayFields = array( );
>
> $questionData = 
> $this->Question->findAll( $arrayConditions,
> $arrayFields );
>
> foreach ( $questionData as $question )
> {
>
> $this->Question->save( array( 
> 'institutions_id' => $this->session_data( 'institutions_id' ), 'researchs_id' 
> =>
>
> $question['Question']['researchs_id'], 'question' =>
> $question['Question']['question'] ) );
> $this->Question->create();
> /**/
> $treta[] = array( 
> 'institutions_id' => $this->session_data( 'institutions_id' ), 'researchs_id' 
> =>
>
> $question['Question']['researchs_id'], 'question' =>
> $question['Question']['question'] );
> }
>
> }
>
> }
>
> $this->set( 'teste', $treta );
> }
>
> Falopa!


--~--~-~--~~~---~--~~
Recebeu esta mensagem porque está inscrito em Grupo "Cake PHP Português" do 
Grupos Google.
 Para enviar mensagens para este grupo, envie um email para 
cake-php-pt@googlegroups.com
 Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED]
 Para mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-PT
-~--~~~~--~~--~--~---



Re: Loop + save() = Problema do mau

2007-10-18 Por tôpico Tulio Faria

Opa,

eu já estava pensando em escrever sobre isso, então acabei
escrevendo... rs

Aí vai: 
http://www.tuliofaria.net/dica-salvando-varios-registros-de-um-mesmo-model-de-uma-so-vez-dentro-de-um-loop/

Abraços,

On 17 Out, 22:09, hostdesigner <[EMAIL PROTECTED]> wrote:
> Preciso resgatar alguns registros e adiciona-los na mesma tabela, mas,
> com o ID diferente, ou seja, estou duplicando o registro.
>
> Para tal fiz uma consulta que me retorna 23 registros logo abaixo fiz
> um foreach para percorrer os registros retornados e já inseri-los
> novamente usando save(), só que quando eu executo o código usando
>
> $this->MODEL->save( array( 'campo' => 'valores' ) );
>
> O cake tenta atualizar os registros, não é isso que quero... E quando
> tento assim
>
> $this->MODEL->save( array( 'campo' => 'valores' ) );
> $this->MODEL->create();
>
> O cake cria 2000 e lá vai registros, o mais extranho é que quando eu
> coloco um array para simular uma inserção ele retorna certo, só não
> consegue adicionar.
>
> Vai a cópia do meu método, Alguém faz idéia de como solucionar isso?
>
> function admin_aplicar( $researches_id, $action_id )
> {
>
> // Is Allowed?
> $this->checkSession();
>
> // The title
> $this->set( 'title', "Aplicar perguntas para enquete" );
>
> $prova = 0;
>
> if( empty( $researches_id ) )
> {
>
> // Show the message error
> $this->Session->setFlash( 'Dados inválidos' );
>
> // Redirect user
> $this->redirect( '/admin/perguntas/'. $researches_id 
> );
> }else{
>
> // Retrieve the research question
> $researchQuestion = $this->Research->read( null, 
> $researches_id );
>
> // Format the values
> $dateTime = explode( " ", 
> $researchQuestion['Research']
> ['created'] );
> $date = explode( "-", $dateTime[0] );
> $time = explode( ":", $dateTime[1] );
>
> // Search aplication to extra research
> $arrayConditions = array( 'Research.id != '. 
> $researches_id .'',
> 'Research.endDate' => $researchQuestion['Research']['endDate']/*,
> 'YEAR(Research.created)' => $date[0], 'MONTH(Research.created)' =>
> $date[1], 'DAY(Research.created)' => $date[2],
> 'HOUR(Research.created)' => $time[0]/*, 'MINUTE(Research.created)' =>
> $time[1]*/ );
> $arrayFields = array( );
>
> $researchData = $this->Research->findAll( 
> $arrayConditions,
> $arrayFields );
>
> // Loop's research related
> foreach( $researchData as $research )
> {
>
> // Search the questions related
> $arrayConditions = array( );
> $arrayFields = array( );
>
> $questionData = 
> $this->Question->findAll( $arrayConditions,
> $arrayFields );
>
> foreach ( $questionData as $question )
> {
>
> $this->Question->save( array( 
> 'institutions_id' => $this->session_data( 'institutions_id' ), 'researchs_id' 
> =>
>
> $question['Question']['researchs_id'], 'question' =>
> $question['Question']['question'] ) );
> $this->Question->create();
> /**/
> $treta[] = array( 
> 'institutions_id' => $this->session_data( 'institutions_id' ), 'researchs_id' 
> =>
>
> $question['Question']['researchs_id'], 'question' =>
> $question['Question']['question'] );
> }
>
> }
>
> }
>
> $this->set( 'teste', $treta );
> }
>
> Falopa!


--~--~-~--~~~---~--~~
Recebeu esta mensagem porque está inscrito em Grupo "Cake PHP Português" do 
Grupos Google.
 Para enviar mensagens para este grupo, envie um email para 
cake-php-pt@googlegroups.com
 Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED]
 Para mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-PT
-~--~~~~--~~--~--~---