Dúvida Bind no componente

Dúvidas relativas a Joomla! 1.0.x
belini
Novato
Mensagens: 10
Registrado em: 22 Jul 2008, 09:28

Dúvida Bind no componente

Mensagem por belini »

Oi, tenho um componente que estou desenvolvendo no modo Joomla e tenho a seguinte classe de persistência:

Código: Selecionar todos

//Classes que extende mosDBTable do Joomla

//Classe da Solicitação de Recurso
class mosRecursosInf extends mosDBTable {
 var $id= null;
 var $sArea= null;
 var $sNomeCcusto= null; 
 var $sNumCcusto= null;
 var $sRespSolicit= null;
 var $sEmail= null;
 var $sRamal= null;
 var $sSetor= null;
 var $sAndar= null;
 var $sSala= null;
 var $sNoPontoRede= null;
 var $sNomePlanoAcao= null;
 var $sDtAprovPlanoAcao = null;
 var $txtAtivSemRecurso = null;
 var $sAghMod= null;
 var $sQtsRecursoArea= null;
 var $sFuncUsaRecTurno= null;
 var $sTmpUsoDiaHora= null;
 var $sResultEsper= null;
 var $sIndResulRecur	= null;
 var $Situacao= null;
 var $MotivoPendencia= null;
 var $MotivoConclusao= null;
 var $dtConclusao= null; 
 var $dtAbertura= null;
 var $checked_out= null;
 var $checked_out_time= null;
  	 	 
 function mosRecursosInf( &$db ){
		$this->mosDBTable( 'sbd_solrecinfo', 'id', $db );
 }
}

class mosRecursosInfEquip extends mosDBTable {
var $idequip= null;
var $idSolicit= null;
var $Quant= null; 
 	 	 
 function mosRecursosInfEquip( &$db ){
		$this->mosDBTable( 'sbd_solrecinfoequip', 'id', $db );
 }
}
A segunda classe na verdade é para relacionar a solicitação com a tabela de equipamentos, então posso ter uma solicitação associada a diversos equipamentos.

O que me confunde é o bind que tenho de fazer pois o formulário é um conjunto de checkboxes baseado na tabela de equipamentos, veja:

Imagem
Imagem

Dentro do circulo amarelo está os equipamentos, a questão é como associar no bind visto que cada equipamento gererá uma row na tabela "'sbd_solrecinfoequip" e o bind, pelo que entendo se liga a um objeto só.

Por exemplo, a classe "mosRecursosInf", que é a solicitação em si, eu consigo casar cada campo do formulário com um campo da classe e depois só dou sotere e pronto. Mas no caso dos equipamentos eu não consigo casar, visto que posso ter diversos equipamentos selecionados num mesmo submit, o que geraria diveras rows na tabela sbd_solrecinfoequip.

Não sei se expliquei bem minha dificuldade, qualquer coisa posta ae.
Avatar do usuário
bigodines
Site Admin
Mensagens: 384
Registrado em: 11 Jul 2008, 20:25

Re: Dúvida Bind no componente

Mensagem por bigodines »

nesse caso acho que vc n vai poder fazer um bind. vai ter que colocar os valores do vetor dentro de um loop e criar um novo objeto para cada linha da tabela. O bind não funciona para várias linhas (um vetor de dados).
belini
Novato
Mensagens: 10
Registrado em: 22 Jul 2008, 09:28

Re: Dúvida Bind no componente

Mensagem por belini »

bigodines escreveu:nesse caso acho que vc n vai poder fazer um bind. vai ter que colocar os valores do vetor dentro de um loop e criar um novo objeto para cada linha da tabela. O bind não funciona para várias linhas (um vetor de dados).
Aaaaaaaaaaaaaaaaaa bão! Eheheh....Achei que não tava vendo algo, mas realmente não é possível o Bind pra vários valores diferentes.
Neste caso terei de receber os valor com $_POST igual o PHP padrão e com um laço tratar cada valor, certo?

Pena não ter controle de transações o MYSQL, pois numa situação hipotética qualquer, eu posso ter uma solicitação sem equipamento algum.
Afinal caso depois do store da solicitação, por algum motivo o laço de equipamentos falhe, eu corro este risco.

Uma saída pra usar o bind numa tacado só é criar um campo equipamento tipo varchar onde cada item escolhido pelo usuário seja algo tipo: 1,2,3.

Então com um "explode" e um laço eu saberia a escolha do usuário foi pelos equipamentos 1, 2 e 3. Mas complicaria um pouco em pesquisas do tipo: "Quantos equipamentos do tipo 1 foi escolhi pelo usuário". Sem falar que a quantidade teria de ser uma column pra cada equipamento.

Que coisa.
Avatar do usuário
bigodines
Site Admin
Mensagens: 384
Registrado em: 11 Jul 2008, 20:25

Re: Dúvida Bind no componente

Mensagem por bigodines »

Pena não ter controle de transações o MYSQL, pois numa situação hipotética qualquer, eu posso ter uma solicitação sem equipamento algum.
Afinal caso depois do store da solicitação, por algum motivo o laço de equipamentos falhe, eu corro este risco.
no 5 ainda não tem? pensei que tivesse visto uns sqls pra mysql com 'commit' esses dias...
Chico Gois
Joomleiro
Mensagens: 317
Registrado em: 09 Ago 2008, 16:25
Contato:

Re: Dúvida Bind no componente

Mensagem por Chico Gois »

Desculpa pegar o bonde andando...

Ja viu isto,

http://dev.mysql.com/doc/refman/5.0/en/commit.html
Atenciosamente,

Chico Gois

Imagem
belini
Novato
Mensagens: 10
Registrado em: 22 Jul 2008, 09:28

Re: Dúvida Bind no componente

Mensagem por belini »

Chico Gois escreveu:Desculpa pegar o bonde andando...
Ja viu isto,
http://dev.mysql.com/doc/refman/5.0/en/commit.html
Interessante, vou verificar a possibilidade de atualizar pra versão 5 o Mysql, além do PHP, pois já vi componentes que funcionam só nessa versão.

O Joomla 1.0.15 funciona legal com MySQL 5 e PHP 5?
belini
Novato
Mensagens: 10
Registrado em: 22 Jul 2008, 09:28

Re: Dúvida Bind no componente

Mensagem por belini »

Aliás, não sei onde li que Mysql 4 não tinha transação, mas eu acabei de achar comandos de transações no 4.0

Veja este site:

http://dev.mysql.com/doc/refman/4.1/en/commit.html

Agora é testar pra ver se funciona mesmo...

É isso....
Responder