RB
Erro ao salvar campos multivalues
Ola a Todos,
Estou tendo problema ao salvar campos multi values, alguém pode me ajudar ?
Trecho em que ocorre o erro:
Segue imagem em anexo com o retorno dos método.
Estou tendo problema ao salvar campos multi values, alguém pode me ajudar ?
Trecho em que ocorre o erro:
- <?php
- if(!empty($param['cep']) And is_array($param['cep']))
- {
- foreach($param['cep'] as $row => $object)
- {
- $endereco = new Endereco;
- $cep = str_replace("-", "", $param['cep'][$row]);
- $objects = $endereco->BuscaCepBanco($cep);
- if(!empty($objects))
- {
- // show form values inside a window
- // $win = TWindow::create('Object id', 0.6, 0.8);
- //$win->add( '<pre>'.str_replace("\n", '<br>', print_r($objects, true) ).'</pre>' ); ao descomentar este trecho e comentar o trecho abaixo, verifiquei que esta retornando os valores.
- $pessoa_endereco = new PessoaEndereco;
- $pessoa_endereco->pessoa_id = $pessoa_id;
- $pessoa_endereco->endereco_id = $objects->id;
- $pessoa_endereco->tipoendereco_id = $param['tipo_endereco_id'][$row];
- $pessoa_endereco->numero = $param['numero'][$row];
- $pessoa_endereco->complemento = $param['complemento'][$row];
- $pessoa_endereco->store();
- }
- //$win->show(); para testar descomentar este trecho
- }
- }
- ?>
Segue imagem em anexo com o retorno dos método.
Qual é o erro?
Nataniel, bom dia,
na realidade os dados ( Id) retornado do método BuscaCepBanco não estão sendo gravados na tabela PessoaEndereço;
Pelo que dá para perceber no print, a função BuscaCepBanco está retornando um array.
Não sei ao certo qual o comportamento desejado, mas, se retornar sempre um único registro, acesse a posição 0 do array:
Então Natanael, a função buscacepbanco verifiica se existe o deposita na base, se já EXISTIR retorna o id do endereço, porém na0 estou conseguindo pegar o ideal retornado, fiz conforme indicou porém não obtive sucesso.
Retificando a mensagem anterior.
O que acontece eu preciso verificar sempre se o cep já existe na base de dados com o método BuscaCepBanco, caso exista é retornado o id de cada endereço
e depois preciso gravar id retornado na tabela PessoaEndereco ( id) para cada endereço.
fiz conforme indicou porém não obtive sucesso.
Rubens, fiz confusão, a variável $objects é um array associativo. Faça:
Nataniel,
O negócio esta encantado, fiz como indicou e não grava, simplesmente fica com a mensagem carregando, até dar o erro :
SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction .
Você alguma sugestão melhor do que o jeito que estou usando para gravar os dados.