Jump to content
Fórum Script Brasil
  • 0

Lista de exibição com Filtro


JulianaLF

Question

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 to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...