Ir para conteúdo
Fórum Script Brasil
  • 0

Lista de exibição com Filtro


JulianaLF

Pergunta

Tenho esse código E preciso que para pag igual a 1 ele mostre somente o que for Hotel, para pag igual a 2 somente o que for resort e para pag igual a 3 o que for pousada. esse é um código de exibição para mapsGoogle, ou seja existe uma tabela chamada Hospedagem com uma chave que define os tipos de registro, ( se é hotel, pousada ou resort) esse código me retornar uma lista em guias ( pag), ou seja pag 1 me retornar todos os registros dessa tabela ordenados por nome, na pag 2 me retornar todas os registro dessa tabela ordenador por tipo ( hotel, pousada ou resort), na pag 3 me retornar todo os tipos separados por regional, e na pag 4 me retornar todo os tipos ordenados por bairro, até a parte do bairro tá correto, mas as 3 primeiras guias ou pag devem ser somente cada uma de um tipo, pag 1 =hotel, pag=2 resort, pag 3 =pousada . Informando que esse é só o Default da View do componente.

<? if($pag==1) { ?>

<div class="guia" style="background:#99CC9B;width:557px;">

<? $x=count($list);

$f=0;

do{ $rows = &$list[$f];

if ($control==null){

?>

<div class=letra">

<div class="titulo"><h2><?=$rows->letra ?></h2></div>

<?

for ($i = 0, $n = count($list); $i < $n; $i++) {

$row = &$list[$i];

if ($row->letra==$rows->letra )&& ( ){

?>

<a href="#" onclick="showPopup(<?=$i?>)"><?= $row->nome ?></a><br/>

<? } $control=$rows->letra;}?>

</div>

<? $f++;}else if ($control==$rows->letra){

$f++;}

else {

?>

<div class="letra">

<div class="titulo"><h2><?=$rows->letra ?></h2></div>

<?

for ($i = 0, $n = count($list); $i < $n; $i++) {

$row = &$list[$i];

if ($row->letra==$rows->letra ){

?>

<a href="#" onclick="showPopup(<?=$i?>)"><?= $row->nome ?></a><br/>

<? } $control=$rows->letra;}?>

</div>

<? $f++;}

}while ($f<$x);?>

</div>

<? } else if($pag==2) { ?>

<div class="guia" style="background:#99CC9B;width:557px;">

<? $x=count($list);

$f=0;

do{ $rows = &$list[$f];

if ($control==null){

?>

<div class="letra">

<div class="titulo"><h2><?=$rows->descricao ?></h2></div>

<?

for ($i = 0, $n = count($list); $i < $n; $i++) {

$row = &$list[$i];

if ($row->descricao==$rows->descricao ){

?>

<a href="#" onclick="showPopup(<?=$i?>)"><?= $row->nome ?></a><br/>

<? } $control=$rows->descricao;}?>

</div>

<? $f++;}else if ($control==$rows->descricao){

$f++;}

else {

?>

<div class="letra">

<div class="titulo"><h2><?=$rows->descricao ?></h2></div>

<?

for ($i = 0, $n = count($list); $i < $n; $i++) {

$row = &$list[$i];

if ($row->descricao==$rows->descricao ){

?>

<a href="#" onclick="showPopup(<?=$i?>)"><?= $row->nome ?></a><br/>

<? } $control=$rows->descricao;}?>

</div>

<? $f++;}

}while ($f<$x);?>

</div>

<? } else if($pag==3) { ?>

<div class="guia" style="background:#99CC9B;width:557px;">

<? $x=count($list);

$f=0;

do{ $rows = &$list[$f];

if ($control==null){

?>

<div class="letra">

<div class="titulo"><h2><?=$rows->regional ?></h2></div>

<?

for ($i = 0, $n = count($list); $i < $n; $i++) {

$row = &$list[$i];

if ($row->regional==$rows->regional ){

?>

<a href="#" onclick="showPopup(<?=$i?>)"><?= $row->nome ?></a><br/>

<? } $control=$rows->regional;}?>

</div>

<? $f++;}else if ($control==$rows->regional){

$f++;}

else {

?>

<div class="letra">

<div class="titulo"><h2><?=$rows->regional ?></h2></div>

<?

for ($i = 0, $n = count($list); $i < $n; $i++) {

$row = &$list[$i];

if ($row->regional==$rows->regional ){

?>

<a href="#" onclick="showPopup(<?=$i?>)"><?= $row->nome ?></a><br/>

<? } $control=$rows->regional;}?>

</div>

<? $f++;}

}while ($f<$x);?>

</div>

<? } else if($pag==4) { ?>

<div class="guia" style="background:#99CC9B;width:557px;">

<? $x=count($list);

$f=0;

do{ $rows = &$list[$f];

if ($control==null){

?>

<div class="letra">

<div class="titulo"><h2><?=$rows->bairro ?></h2></div>

<?

for ($i = 0, $n = count($list); $i < $n; $i++) {

$row = &$list[$i];

if ($row->bairro==$rows->bairro ){

?>

<a href="#" onclick="showPopup(<?=$i?>)"><?= $row->nome ?></a><br/>

<? } $control=$rows->bairro;}?>

</div>

<? $f++;}else if ($control==$rows->bairro){

$f++;}

else {

?>

<div class="letra">

<div class="titulo"><h2><?=$rows->bairro ?></h2></div>

<?

for ($i = 0, $n = count($list); $i < $n; $i++) {

$row = &$list[$i];

if ($row->bairro==$rows->bairro ){

?>

<a href="#" onclick="showPopup(<?=$i?>)"><?= $row->nome ?></a><br/>

<? } $control=$rows->bairro;}?>

</div>

<? $f++;}

}while ($f<$x);?>

</div>

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Olá Juliana,

Antes de tudo, bem vinda ao fórum. Quando puder veja manual criação de tópico

Seu código está meio esquisito, o que você deseja ordenar? qual parte do código?

Esse código é a página de exibição do meu site dentro do componente, nessa página, especificamente nesse compenete tem Guias, cada guia deve mostrar os resultados de todos os registro dentro de uma tabela ( no caso tabela hospedagem), queria saber se dentro desses laços haveria possibilidade de colocar uma condição ( por exemplo para cada if pag==1 exibir os registros ordenador da forma como já tá por letra MAS que sejam Somente Hostel ( para ser hotel a chave tipohosped=1)

o arquivo que faz essa query tá assim:

<?php

defined('_JEXEC') or die();

jimport( 'joomla.application.component.model' );

class HospedagemModelHospedagem extends JModel

{

function __construct()

{

parent::__construct();

$array = JRequest::getVar('cid', 0, '', 'array');

$this->setId((int)$array[0]);

}

function setId($id)

{

$this->_idhosped = $id;

$this->_data = null;

}

function &getData()

{

$currenturl = JURI::current();

$d = explode ("//",$currenturl);

$dr = explode ("/", $d[1]);

$ds = explode (".", $dr[7]);

$pagina=$_POST['paginacao'];

if(JRequest::getCmd('paginacao')!=null) {

$pagina = JRequest::getCmd('paginacao');

}

if (empty( $this->_data ))

{

$where = "";

if ($pagina==1) {

if ( $ds[0] != null) {

$where .= "and idhosped=.$ds[0]." and a.tipohosped=1";

}else{

$where .= "order a.nome asc";

}}

if ($pagina==2) {

if ($ds[0]!= null) {

$where .= "and idhosped=".$ds[0]."and a.tipohosped=2";

}else{

$where .= "order by a.nome asc";

}}

if ($pagina==3) {

if ( $ds[0] != null) {

$where .= "and idhosped=".$ds[0]."and a.tipohosped=3";

}else{

$where .= "order by a.nome asc";

}}

if ($pagina==4) {

if ( $ds[0]!= null) {

$where .= "and idhosped=".$ds[0]."order by a.bairroend asc";

}else{

$where .= "order by a.bairroend asc";

}}

if ($pagina==null) {

if ($ds[0] != null) {

$where .= "and idhosped=".$ds[0]." order by a.nome asc";

}else{

$where = "order by a.nome asc";

}}

$query = "SELECT DISTINCT (a.idhosped),a.nome,a.ruaend,a.ruaNum,a.cidadeend,a.estadoend,a.lat,a.lng,a.tel_fixo,a.site,a.logomarca,a.cep,a.tipohosped, r.regional, a.bairroend AS bairro,upper( SUBSTRING( a.nome, 1, 1 ) ) as letra, p.descricao

FROM jos_hospedagem a, jos_regional r,jos_tipohospedagem p

WHERE a.idregional = r.controleregional AND a.published=1 AND a.tipohosped = p.id_tipohosped

$where ";

$this->_data = $this->_getList( $query);

/*$consulta = "select * from jos_artista";

$dados= $this->_getList( $consulta);

$consulta2 = "select * from jos_pag_artista where id=14";

$texto1= $this->_getList( $consulta2);

for ( $i = 0 ; $i < count($texto1); $i++) {

$row = & $texto1[$i];

$texto = $row->texto;

}

$data = date("Y-m-d");

for ( $i = 0 ; $i < count($dados); $i++) {

$row = & $dados[$i];

if ( ( $row->id != 234 ) && ( $row->id != 235 ) && ( $row->id != 669 )) {

$insert = "insert into jos_pag_artista (texto, id_artista, published, dtpublicacao, titulo)

values ('$texto', '$row->id', '1', '$data', 'Artes Visuais')";

$db = JFactory::getDBO();

$db->setQuery($insert);

$db->query();

}

}*/

}

$this->getPre();

return $this->_data;

}

function getPre()

{

$pre= "1";

$pagina=$_POST['paginacao];

if(JRequest::getCmd('paginacao')!=null) {

$pagina = JRequest::getCmd('paginacao');

}

$pre .= $pagina."/";

$this->_pre =$pre;

return $this->_pre;

}

function getRegional()

{

if (empty( $this->_regional ))

{ $query = 'SELECT distinct controleregional,regional FROM #__regional ORDER BY controleregional ASC';

$this->_regional = $this->_getList( $query );

}

return $this->_regional;

}

function getTipohospedagem()

{

if (empty( $this->_tipohospedagem ))

{ $query = 'SELECT * FROM #__tipohospedagem ORDER BY id_tipohosped ASC';

$this->_tipohospedagem = $this->_getList( $query );

}

return $this->_tipohospedagem;

}

}

Link para o comentário
Compartilhar em outros sites

  • 0
Seria algo nessa linha aqui?

$where = "";
if ($pagina==1) {
if ( $ds[0] != null) {
$where .= "and idhosped=".$ds[0]." and a.tipohosped=1";
}else{
$where .= "order a.nome asc";
}}

?

Creio que não é somente nessa linha Ricardo, pois já alterei ela algumas vezes e não influenciou o resultado, se possível queria um auxílio para tentar minimizar aquele IF do primeiro que código que postei aqui, pois é um if composto complexo, não consegui acompanhar sua evolução

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...