Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Julio Andolfo

Consulta Zend Framework

Recommended Posts

Certo, vou tentar aqui qualquer coisa posto, mas ultima dúvida, se eu jogar um script PHP dentro de uma pagina criada pelo Zend, funciona normalmente ? Obrigado !

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que pode ter errado aqui ? estou tentando fazer o select com o valor dos condominios do meu banco

 

<?
	#estabelecemos conexão com o banco de dados
mysql_connect('localhost','root','') or die(mysql_error());

#seleciona o banco de dados
mysql_select_db('portariaweb') or die(mysql_error());
	$query = mysql_query("SELECT Con_ID, Con_Nome, FROM po_condominio");?>
	 <label for="">Condominios</label>
<select>
<option>Selecione...</option>

<?php while($condominio = mysql_fetch_array($query)) { ?>
<option value="<?=$condominio['Con_ID'];?>"><?=$condominio['Con_Nome'];?></option>
<?php } ?>


</select>

 

Consegui :

 

	<?
	#estabelecemos conexão com o banco de dados
mysql_connect('localhost','root','') or die(mysql_error());

#seleciona o banco de dados
mysql_select_db('portariaweb') or die(mysql_error());
	$query = mysql_query("SELECT Con_ID, Con_Nome FROM po_condominio");?>
	 <label for="">Condominios: </label>
<select>
<option>Selecione...</option>

<?php while($condominio = mysql_fetch_array($query)) { ?>
<option value="<?=$condominio['Con_ID'];?>"><?=$condominio['Con_Nome'];?></option>
<?php } ?>


</select>

 

Agora a minha dúvida é como poderia associar o ID do MORADOR com o ID do CONDOMINIO, sendo que na tabela morador, tem o Con_ID também.

 

Aqui eu tenho EU ACHO que é onde ele está pegando os dados :

 

case 'condominios':
                       $this->morador->setFiltro($form->getValue('campoBusca'));
                       $this->view->assign('condominios',$this->condominios->consultaCondominios($this->sessionAcl->__get('grupo')));
                       break;

 

se eu intendi ele esta pegando os dados MORADOR, como poderia fazer para pegar MORADOR e CONDOMINIO ?

 

Já notei aqui que isso está errado, não é no Controller que ele está fazendo isso, em qual parte que ele faz essas requisições ? vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Requisições?? Para fazer a consulta com o parâmetro a mais você utiliza aquele método que modificamos lá no início, passando como segundo parâmetro o valor escolhido pelo usuário como sendo o condomínio.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu poderia fazer para no formulario o setMultiOption listar algo do meu DB ? vlw

 

É que fico meio perdido nas pastas, não sei em qual parte devo colocar o parâmetro, pois tem 3 partes interligadas !

 

onde voc^Çe passou para mim gostaria de saber se tenho que alterar o campo :

 

$query->where('Nome do campo do condomínio = ?',

 

devo colocar o nome mesmo ?

 

estou tentando fazer assim :

 

MODEL Morador :

 

 if($condominio !== null) {
           $query->where('esc_condominio', $condominio, Zend_Db::INT_TYPE);
       }

 

CONTROLLER :

 

Estou com duvidas nessa parte :

 

 if ($this->_request->isPost()) {
           if ($form->isValid($_POST)) {
               switch ($form->getValue('campoFiltro')) {
                   case 'condominio':
                       $this->condominio->setFiltro($form->getValue('campoBusca'));
                       $this->view->assign('condominio',$this->condominio->consultaCondominio($this->sessionAcl->__get('grupo')));
                       break;
                   case 'morador':
                       $this->morador->setFiltro($form->getValue('campoBusca'));
                       $this->view->assign('morador',$this->morador->consultaMoradores($this->sessionAcl->__get('grupo')));
                       break;
                   case 'esc_condominio':
                       $this->morador->setFiltro($form->getValue('campoBusca, esc_condominio '));
                       $this->view->assign('morador',$this->morador->consultaMoradores($this->sessionAcl->__get('grupo')));
                       break;

 

no qual ele ta pegando os valores da pesquisa, tinha 2 CASE, tenho q colocar o terceiro, para pegar o valor dos 2 campos correto ?

 

 

estou indo para o caminho certo ?

 

=====================================================

 

Eu acabei de ver uma coisa e deixa eu ver se eu intendi o que você me explicou :

 

Não preciso alterar Controller nem nada, você simplismente adicionou mais um parâmetro na busca de moradores, e agora falta eu somente colocar o campo no INDEX dando o nome do parâmetro que você edicionou, acertei ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

no qual ele ta pegando os valores da pesquisa, tinha 2 CASE, tenho q colocar o terceiro, para pegar o valor dos 2 campos correto ?

Errado. No segundo case, você modifica a chamada do método $this->morador->consultaMoradores, adicionando como segundo parâmetro o valor selecionado no campo que você criou.

 

Não preciso alterar Controller nem nada, você simplismente adicionou mais um parâmetro na busca de moradores, e agora falta eu somente colocar o campo no INDEX dando o nome do parâmetro que você edicionou, acertei ?

Não. Precisa alterar o controller, a view e o model. Na model, parece que você já modificou. Na view parece que também. Falta só alterar no controller conforme eu sugeri acima.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei criar esse formulario no meu FORM de minhas APPS :

 

 $esc_condominio = new Zend_Form_Element_Select('Con_ID');
$esc_condominio->setLabel('Condominios :')
  ->setRequired()
  ->setOptions ( array ('escape' => false ) );

$esc_condominio->addMultiOption('', '');

$po_condominio = new Application_Model_Morador();

foreach ($po_condominio->fetchAll() as $e) {
    $om->addMultiOption($e->Con_ID, $e->Con_Nome);
}

 

Está dando esse erro na página :

 

Fatal error: Cannot redeclare class Morador in C:\Vision\application\models\Morador.php on line 3

 

 

 

o que estou fazendo eh tentando criar o novo campo, listando os condominios em um select

Compartilhar este post


Link para o post
Compartilhar em outros sites

A mensagem que aparece é só esta mesmo ou tem mais um pedaço? Além disto, o código abaixo está errado:

 

foreach ($po_condominio->fetchAll() as $e) {
    $om->addMultiOption($e->Con_ID, $e->Con_Nome);
}

 

Você deve trocar $om por $esc_condominio, que é onde está o objeto do select, mas a lógica restante está correta.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

A mensagem que aparece é só esta mesmo ou tem mais um pedaço? Além disto, o código abaixo está errado:

 

foreach ($po_condominio->fetchAll() as $e) {
    $om->addMultiOption($e->Con_ID, $e->Con_Nome);
}

 

Você deve trocar $om por $esc_condominio, que é onde está o objeto do select, mas a lógica restante está correta.

 

Carlos Eduardo

 

Só aparece memso esta mensagem de erro, tem algum lugar explicando como posso fazer um SELECT pegando dados do banco no Zend mesmo ? porque fiz diretamente com PHP mas ai não tem como integrar os sistemas do formulário já feito pelo Zend, obrigado !

 

OBS : fiz a troca do código :

 

foreach ($po_condominio->fetchAll() as $e) {
    $esc_condominio->addMultiOption($e->Con_ID, $e->Con_Nome);
}

 

Mas o erro permanece :

 

Fatal error: Cannot redeclare class Morador in C:\Vision\application\models\Morador.php on line 3

 

E para meu INDEX do formulário estou pegando ele assim :

 

<label for="esc_condominios">
           <?=$this->formConsulta->esc_condominios->getLabel();?>
           <?if($this->formConsulta->esc_condominios->isRequired()){echo"*";}?>
       </label>

       <?=$this->formConsulta->esc_condominios;?>
	<br />

 

Tentei fazer o campo SELECT assim também :

 

 //formulario de escolher condominios

       $this->setName('form_condominios');

       $conMapper = new Application_Model_CategoriasMapper();
       $todosCondominios = $conMapper->fetchAll();

       $conId = array();
       foreach ($todosCondominios AS $row){
           $conId[$row->Con_ID] = $row->Con_Nome;
       }

       $this->addElement('select','Con_ID',
               array(
                   'label' => 'Condominios: ',
                   'multiOptions' => $conId
               ));

//fim do formulario de escolher condominios

 

Ai o erro é esse :

 

 

Warning: include_once(Application\Model\CategoriasMapper.php) [function.include-once]: failed to open stream: No such file or directory in C:\Vision\library\Zend\Loader.php on line 146

 

Warning: include_once() [function.include]: Failed opening 'Application\Model\CategoriasMapper.php' for inclusion (include_path='C:\Vision\application/../library;C:\Vision\application/models;C:\Vision\library;.;C:\xampp\php\PEAR') in C:\Vision\library\Zend\Loader.php on line 146

 

Fatal error: Class 'Application_Model_CategoriasMapper' not found in C:\Vision\library\App\Forms\Default\Consulta\Form.php on line 26

 

Eu até achei uma coisa que aparentemente atende o que preciso, a minha dúvida é usar isso dentro do SELECT encontrei esse código no MODEL :

 

foreach ($condominio->getListaCondominios() as $cond) {
           $apv[] = $cond['Con_ID'];
           //busca os moradores de cada condominio listado
           $query = $db->select()
                       ->from($this->_tabela)
                       ->join($this->_tabelaCondominio,'Mor_Condominio = Con_ID')
                       ->where('Mor_Condominio = ?',$cond['Con_ID']);
           $this->_listaMorador[] = $db->fetchAll($query);

 

Parece que ai ele ta listando MORADOR POR CONDOMINIO .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei também agora pouco isto :

 

  //formulario de escolher condominios

$condominio = new Zend_Form_Element_Select('campoCondominio');
       $condominio->setLabel('Condominios: ')
               ->setMultiOptions($condominios)
               ->setValue($thisCondominio)
               ->setRequired(true);
       $this->addElement($condominio);

//fim do formulario de escolher condominios

 

No qual está dando esse erro :

 

Catchable fatal error: Argument 1 passed to Zend_Form_Element_Multi::setMultiOptions() must be an array, null given, called in C:\Vision\library\App\Forms\Default\Consulta\Form.php on line 26 and defined in C:\Vision\library\Zend\Form\Element\Multi.php on line 142

 

De todas essas tentativas, qual está mais perto da solução.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.