Como trazer o resultado de vários critérios de busca?

173 views
Skip to first unread message

Carlos Alberto Restrepo Araujo

unread,
Apr 10, 2012, 6:44:38 PM4/10/12
to cakep...@googlegroups.com

Prezados, gostaria de sugestões para resolver o seguinte problema.

Meu sistema normal tem um buscador simples de usuários que procura através do Email ou nome os usuários já cadastrados. Eu consegui adicionar mais de 20 critérios de busca, como por exemplo: altura, peso, relacionamento, etc. E estes coloquei em opção Select para o usuário final escolher entre as opções em lugar de ter que digitar.

Minha duvida é: Como faço para colocar todos estes elementos("critérios") num único formulário, e que ao dar procurar ele traga todos os usuários que tenham estes critérios em seus perfiles? Atualmente coloco varios criterios num form, mais só me recupera um único critério?

Minha função busca na Controller:http://bin.cakephp.org/saved/73806

Minha View_Busca (alterada com Select): http://bin.cakephp.org/saved/73807

Minha View Busca Original: http://bin.cakephp.org/saved/73808

Quem puder ajudar agradeço desde ja.

 Obrigado A todos


Message has been deleted

Tobias Sette

unread,
Apr 10, 2012, 8:54:31 PM4/10/12
to cakep...@googlegroups.com
Veja se a action 'pesquisar' lhe ajuda: https://github.com/tobiasgnu/liber/blob/master/app/Controller/ClientesController.php

O metodo postConditions pode lhe ser util tambem: http://book.cakephp.org/2.0/en/controllers.html

Por fim, alguem aqui da lista fez um plugin para pesquisas complexas, que nao me lembro o nome =\

Att,

Tobias

-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS/CM/G/H/IT/L/SS d()? s++:() a--- C++++$ ULC++$ P++$ L+++$ !E !W++$>++ !N o K-- !w() !O !M !V PS$@ PE@ !Y !PGP t++$ !5 !X R+>$ tv? b++@ DI !D G++@ e$ h@ r--- y?
------END GEEK CODE BLOCK------

Thiago Belem

unread,
Apr 11, 2012, 12:23:19 AM4/11/12
to cakep...@googlegroups.com
Isso aqui?


Abs,
--
Thiago Belem
Desenvolvedor
Rio de Janeiro - RJ - Brasil

Assando Sites - Curso online de CakePHP



2012/4/10 Tobias Sette <tobia...@gmail.com>

--
CakePHP Tuga (cakephp-pt)
 
Utilize http://bin.cakephp.org para códigos
Cookbook: http://book.cakephp.org
 
Website do CakePHP: http://cakephp.org/
Website do grupo: http://groups.google.com/group/cakephp-pt?hl=pt-PT

Marcelo F Andrade

unread,
Apr 11, 2012, 8:27:09 AM4/11/12
to cakep...@googlegroups.com
2012/4/10 Carlos Araujo <ing...@gmail.com>:
>
> (..)
> function usuario_busca() {
>
>                        $this->set('meuPerfil', 1);
>                        if(!empty($this->data['tipo']) AND !
> empty($this->data['valor'])) {
>                                   switch($this->data['tipo']) {
>                                               case 'nome':
>
>
> $dados = $this->Usuario->find('all',
> array('conditions'=>array('or'=>array(
>
> 'sexualidade_usuario'=>$this->data['valor'],
>
> 'nome_usuario LIKE'=>'%'.$this->data['valor'].'%',
>
> 'nascimento_usuario LIKE'=>'%'.$this->data['valor'],
>
> 'email_usuario'=>$this->data['valor'] ,
>
> 'descricao_usuario'=>$this->data['valor'],
>
> 'culinaria_usuario'=>$this->data['valor'],
>
> 'altura_usuario'=>$this->data['valor'],
>
> 'relacionamento_usuario'=>$this->data['valor'],
>
> 'paixao_usuario'=>$this->data['valor'])),
>
>
> 'order'=>array('nome_usuario ASC'),
> 'limit'=>200));
>
>                                                           break;
>                                               default: break;
>                                   }
>
>                                   if(isset($dados) AND !
> empty($dados)) $this->set('dados', $dados);
>                                   $busca = array('valor'=> $this-
>>data['valor']);
>                                   $this->set('busca', $busca);
>                        }
>                        else $this->redirect($this->site['url']
> ['site'] . 'usuario/rede/perfil');
>            }
>
>
>
> E este é a VIEW
>
>
> <div id="pag-rede-busca_a">
> <?php
> $this->pageTitle = 'REDE: Busqueda Avançada'; echo $this-
>>element('barralateral'); ?>
>
>
>            <div class="conteudo rede">
>            <?php $msgAlerta = $session->flash(); if(!
> empty($msgAlerta)) echo '<div class="alerta_1 alerta_1_1">' .
> $msgAlerta . '</div>'; ?>
>                        <div class="box_e">
>                        <?php
>                        $img = (!
> empty($usuarioON['imagem_usuario'])) ? 'upload/usuarios/escala/' .
> $usuarioON['imagem_usuario'] : 'usuario.jpg';
>                        echo '<img src="' . $site['url']['prefix'] .
> 'img/' . $img . '" alt="' . $usuarioON['nome_usuario'] . '" title="' .
> $usuarioON['nome_usuario'] . '" width="175" />';
>                        echo $this->element('lateralrede');
>                        ?>
>                        </div></div>
>
>
>                        <ul class="menu4">
>                        <div><h4>Buscar Contato</h4>
>                        <form action="<?php echo $site['url']
> ['site'] ?
>>usuario/rede/busca" method="post" class="form busca">
>
>                                   <label
> for="nome_contato">Procuro:</
> label>
>                                   <select id="nome_contato"
> name="data[valor]" />
>                                   <option value=""></option>
>                                   <option value="1"<?php
> if($usuarioON['sexualidade_usuario']==='1') echo '
> selected="selected"' ?>>Homen</option>
>                                   <option value="2"<?php
> if($usuarioON['sexualidade_usuario']==='2') echo '
> selected="selected"' ?>>Mulher</option>
>                                   <option value="3"<?php
> if($usuarioON['sexualidade_usuario']==='3') echo '
> selected="selected"' ?>>Mulheres & Homens</option>
>                                   <input type="hidden"
> name="data[tipo]" value="nome" />
>                                   </select>
>
>
>                                   <button class="botao_1 botao_1_1"
> type="submit" title="Pesquisar">Pesquisar</button>
>                                   <button class="botao_1 botao_1_1"
> type="reset"  title="Limpar Busca">Limpar Busca</button>
>
>                        </form></div></ul>
>
>
>
>
>                        <ul class="menu4"><div><form action="<?php
> echo $site['url']['site'] ?>usuario/rede/busca" method="post"
> class="form busca">
>
>
>                                   <label for="nome_contato">Que
> Etnia:</label>
>                                   <select id="nome_contato"
> name="data[valor]" />
>                                   <option value=""></option>
>
>                                   <option value="1"<?php
> if($usuarioON['etnia_usuario']==='1') echo ' selected="selected"' ?
>>>Branca/Caucasiana</option>
>                                   <option value="2"<?php
> if($usuarioON['etnia_usuario']==='2') echo ' selected="selected"' ?
>>>Negra/Afro-descendente</option>
>                                   <option value="3"<?php
> if($usuarioON['etnia_usuario']==='3') echo ' selected="selected"' ?
>>>Européia </option>
>                                   <option value="4"<?php
> if($usuarioON['etnia_usuario']==='4') echo ' selected="selected"' ?
>>>Latina/Hispânica</option>
>                                   <option value="5"<?php
> if($usuarioON['etnia_usuario']==='5') echo ' selected="selected"' ?
>>>Árabe/Oriente Médio</option>
>                                   <option value="6"<?php
> if($usuarioON['etnia_usuario']==='6') echo ' selected="selected"' ?
>>>Indígena</option>
>                                   <option value="7"<?php
> if($usuarioON['etnia_usuario']==='7') echo ' selected="selected"' ?
>>>Asiática</option>
>                                   <option value="8"<?php
> if($usuarioON['etnia_usuario']==='8') echo ' selected="selected"' ?
>>>Mestiça </option>
>                                   <option value="9"<?php
> if($usuarioON['etnia_usuario']==='9') echo ' selected="selected"' ?
>>>Outra</option>
>                                   <input type="hidden"
> name="data[tipo]" value="nome" />
>                                   </select>
>
>                                   <button class="botao_1 botao_1_1"
> type="submit" title="Pesquisar">Pesquisar</button>
>                                   <button class="botao_1 botao_1_1"
> type="reset"  title="Limpar Busca">Limpar Busca</button>
>
>                        </form></div></ul>
>
>
>
>
>                                   <ul class="menu4"><div><form
> action="<?php echo $site['url']['site'] ?>usuario/rede/busca"
> method="post" class="form busca">
>                                   <label for="nome_contato">Que curta
> Comida:</label>
>                                   <select id="nome_contato"
> name="data[valor]" />
>                                   <option value=""></option>
>                                               <option value="1"<?php
> if($usuarioON['culinaria_usuario']==='1') echo '
> selected="selected"' ?
>>>Mexicana</option>
>                                               <option value="2"<?php
> if($usuarioON['culinaria_usuario']==='2') echo '
> selected="selected"' ?
>>>Japonesa</option>
>                                               <option value="3"<?php
> if($usuarioON['culinaria_usuario']==='3') echo '
> selected="selected"' ?
>>>Italiana</option>
>                                               <option value="4"<?php
> if($usuarioON['culinaria_usuario']==='4') echo '
> selected="selected"' ?
>>>Chinesa</option>
>                                               <option value="5"<?php
> if($usuarioON['culinaria_usuario']==='5') echo '
> selected="selected"' ?
>>>Portuguesa</option>
>                                               <option value="6"<?php
> if($usuarioON['culinaria_usuario']==='6') echo '
> selected="selected"' ?
>>>Mineira</option>
>                                               <option value="7"<?php
> if($usuarioON['culinaria_usuario']==='7') echo '
> selected="selected"' ?
>>>Gaúcha</option>
>                                               <option value="8"<?php
> if($usuarioON['culinaria_usuario']==='8') echo '
> selected="selected"' ?
>>>Do sul</option>
>                                               <option value="9"<?php
> if($usuarioON['culinaria_usuario']==='9') echo '
> selected="selected"' ?
>>>Espanhola</option>
>                                               <option value="10"<?php
> if($usuarioON['culinaria_usuario']==='10') echo '
> selected="selected"' ?>>Nordestina </option>
>                                               <option value="11"<?php
> if($usuarioON['culinaria_usuario']==='11') echo '
> selected="selected"' ?>>Francesa</option>
>                                               <option value="12"<?php
> if($usuarioON['culinaria_usuario']==='12') echo '
> selected="selected"' ?>>Àrabe</option>
>                                               <option value="13"<?php
> if($usuarioON['culinaria_usuario']==='13') echo '
> selected="selected"' ?>>Grega</option>
>                                               <option value="14"<?php
> if($usuarioON['culinaria_usuario']==='14') echo '
> selected="selected"' ?>>Mediterrânea</option>
>                                               <option value="15"<?php
> if($usuarioON['culinaria_usuario']==='15') echo '
> selected="selected"' ?>>Brasileira</option>
>                                               <option value="16"<?php
> if($usuarioON['culinaria_usuario']==='16') echo '
> selected="selected"' ?>>Cubana</option>
>                                               <option value="17"<?php
> if($usuarioON['culinaria_usuario']==='17') echo '
> selected="selected"' ?>>Koreana</option>
>                                               <option value="18"<?php
> if($usuarioON['culinaria_usuario']==='18') echo '
> selected="selected"' ?>>Thai</option>
>                                               <option value="19"<?php
> if($usuarioON['culinaria_usuario']==='19') echo '
> selected="selected"' ?>>Vegetariana</option>
>                                               <option value="20"<?php
> if($usuarioON['culinaria_usuario']==='20') echo '
> selected="selected"' ?>>Com Frutos do Mar</option>
>                                               <option value="21"<?php
> if($usuarioON['culinaria_usuario']==='21') echo '
> selected="selected"' ?>>Indiana</option>
>                                               <option value="22"<?php
> if($usuarioON['culinaria_usuario']==='22') echo '
> selected="selected"' ?>>Outra</option>
>                                   <input type="hidden"
> name="data[tipo]" value="nome" />
>                                   </select>
>
>
>                                   <button class="botao_1 botao_1_1"
> type="submit" title="Pesquisar">Pesquisar</button>
>                                   <button class="botao_1 botao_1_1"
> type="reset"  title="Limpar Busca">Limpar Busca</button>
>
>                        </form>
> </div>
>                        </div></ul>
>
>
>
>
>
>
>
>
> </div>
> (..)
> <div id="pag-rede-busca_a">
> <?php
> $this->pageTitle = 'REDE: Busqueda Avançada'; echo $this-
>>element('barralateral'); ?>
>
>
>        <div class="conteudo rede">
>        <?php $msgAlerta = $session->flash(); if(!empty($msgAlerta)) echo
> '<div class="alerta_1 alerta_1_1">' . $msgAlerta . '</div>'; ?>
>                <div class="box_e">
>                <?php
>                $img = (!empty($usuarioON['imagem_usuario'])) ? 'upload/usuarios/
> escala/' . $usuarioON['imagem_usuario'] : 'usuario.jpg';
>                echo '<img src="' . $site['url']['prefix'] . 'img/' . $img . '"
> alt="' . $usuarioON['nome_usuario'] . '" title="' .
> $usuarioON['nome_usuario'] . '" width="175" />';
>                echo $this->element('lateralrede');
>                ?>
>                </div></div>
>
>
>                <ul class="menu4">
>                <li><h4>Buscar Contato</h4></li>
>                <form action="<?php echo $site['url']['site'] ?>usuario/rede/busca"
> method="post" class="form busca">
>                        <label for="nome_contato">Nome / E-mail:</label>
>                        <input type="text" id="nome_contato" name="data[valor]" />
>                        <input type="hidden" name="data[tipo]" value="nome" />
>                        <button class="botao_1 botao_1_1" type="submit"
> title="Pesquisar">Pesquisar</button></ul>
>                        <button class="botao_1 botao_1_1" type="reset"  title="Limpar
> Busca">Limpar Busca</button>
>                </form>
>                </ul>
>
>
>
> </div>

>
> Quem puder ajudar agradeço desde ja.

Só uma dica, até para podermos ajudar melhor: quando precisar
mostrar código, prefira deixá-lo externamente, por exemplo, no
http://bin.cakephp.org.

É praticamente impossível ler código extenso assim no corpo
do e-mail.

Atenciosamente.

--
MARCELO F ANDRADE
Belem, Amazonia, Brazil

"I took the red pill"

Reply all
Reply to author
Forward
0 new messages