Ir para conteúdo

POWERED BY:

Arquivado

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

Daiana Mowry

Erro em paginação na página categoria - PHP

Recommended Posts

Olá, faz dias que estou com este erro e não encontro a solução. Já usei até vários códigos diferentes para paginar e o mesmo erro ocorre.

 

O problema é com paginação na página categoria do meu portal imobiliário. Está paginando corretamente, mas não vai para a página em questão, está indo para a home. Qualquer link da paginação só leva para a home.

 

Gostaria muito que me ajudassem. Já usei paginação e deu certo. Paginei todos os arquivos do painel sem nenhum problema. O erro só acontece com a página categoria por enquanto.

 

Vou postar o meu código:

 

Arquivo FUNÇÕES.PHP

 

<?php function get_categoria(){

include"Connections/config.php";
$imovelStatus = 'completo';
$operacao = $_GET['operacao'];
$dataVal = date('Y-m-d H:m:s');

$pag = "$_GET[pag]";
if($pag >= '1'){
$pag = $pag;
}else{
$pag = '1';
}

$maximo = '1'; //RESULTADOS POR PÁGINA
$inicio = ($pag * $maximo) - $maximo;
$sql = 'SELECT * FROM d_imoveis WHERE imovelStatus = :imovelStatus AND imovelTermino >= :dataVal AND imovelNegocio = :operacao ORDER BY imovelId DESC LIMIT '.$inicio.','.$maximo;
try{
$query = $conecta->prepare($sql);
$query->bindValue(':dataVal',$dataVal,PDO::PARAM_STR);
$query->bindValue(':operacao',$operacao,PDO::PARAM_STR);
$query->bindValue(':imovelStatus',$imovelStatus,PDO::PARAM_STR);
$query->execute();

$resultado = $query->fetchAll(PDO::FETCH_ASSOC);

}catch(PDOexception $error_imovels){
echo 'Erro ao selecionar os imoves!';
}

foreach($resultado as $res){
$imovelID = $res['imovelId'];
$tipo = $res['imovelTipo'];
$negocio = $res['imovelNegocio'];
$valor = $res['imovelValor'];
$thumb = $res['imovelThumb'];
$titulo = $res['imovelTitulo'];
$dormitorios = $res['imovelComodos'];
$data = $res['imovelCadastro'];

echo '<tr>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'"><img src="timthumb.php?src=midias/'.$thumb.'&h=60&w=100&zc=1" alt="'.$titulo.'" title="'.$titulo.'" border="0" /></a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.$dormitorios.' Domitórios</a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.date('d/m/Y',strtotime($data)).'</a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'" class="veja_mais">Veja Mais</a></td>';
echo '</tr>';


}

}?>

 

Arquivo CATEGORIA.PHP

 

<div id="pagina">

<h1>Categoria</h1>
<table width="100%" border="0" cellpadding="3" cellspacing="2" bordercolor="#666666";>
<tr style="color:#005789; font-variant:small-caps; font:14px 'Trebuchet MS', Arial, Helvetica, sans-serif;">
<td height="30" align="center" bgcolor="#E0E0E0"><strong>Ilustração:</strong></td>
<td align="center" bgcolor="#E0E0E0"><strong>Dormitórios:</strong></td>
<td align="center" bgcolor="#E0E0E0"><strong>Data do Anúncio:</strong></td>
<td align="center" bgcolor="#E0E0E0"><strong>Acessar:</strong></td>
</tr>
<?php get_categoria();?>
</table>
<div class="paginator">
<?php
//USE A MESMA SQL QUE QUE USOU PARA RECUPERAR OS RESULTADOS
//SE TIVER A PROPRIEDADE WHERE USE A MESMA TAMBÉM
$imovelStatus = 'completo';
$operacao = $_GET['operacao'];
$dataVal = date('Y-m-d H:m:s');
$pag = "$_GET[pag]";
if($pag >= '1'){
$pag = $pag;
}else{
$pag = '1';
}

$maximo = '1'; //RESULTADOS POR PÁGINA
$inicio = ($pag * $maximo) - $maximo;
$sql_res = mysql_query("SELECT * FROM d_imoveis WHERE imovelStatus = '$imovelStatus' AND imovelTermino >= '$dataVal' AND imovelNegocio = '$operacao' ORDER BY imovelId DESC");

if( !$sql_res ) die( mysql_error() );

$total = mysql_num_rows($sql_res);
$links = '4';

$paginas = ceil($total/$maximo);
$links = '4'; //QUANTIDADE DE LINKS NO PAGINATOR

echo "<a href=\"index.php?exe=nav/categoria&pag=1\">Primeira Página</a>   ";

for ($i = $pag-$links; $i <= $pag-1; $i++){
if ($i <= 0){
}else{
echo"<a href=\"index.php?exe=nav/categoria&pag=$i\">$i</a>   ";
}
}echo "$pag    ";

for($i = $pag +1; $i <= $pag+$links; $i++){
if($i > $paginas){
}else{
echo "<a href=\"index.php?exe=nav/categoria&pag=$i\">$i</a>   ";
}
}
echo "<a href=\"index.php?exe=nav/categoria&pag=$paginas\">Última página</a>   ";
?>


</div>
</div><!--fecha pagina-->

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc ta usando PDO e mysq_*, deveria rever isso, está errado ( ( use somente PDO ))!

bom paginação é um problema constante kkkkkkk....

vc ta usando .htaccess pra tratar as URLS?

pode ser este o problema!

que trecho do codigo trata esse parametro index.php?exe ?


Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, Luís. Nâo uso .htaccess. Eu fiz do mesmo jeito nos arquivos do painel e não deu erro. Só dá erro em categoria.php.

Consertei aqui agora. O erro estava na chamada do link. Obrigada por me alertar. Só que agora ao ir para os outros links da paginação ele retorna vazio. Coloquei para mostrar um imóvel por página para testar. Tenho 3 imóveis cadastrados. Quando clico pra mostrar o segundo e o terceiro parece que ele zera. Não mostra nada. E os links 2 e 3 da paginação somem.

 

Por favor, me ajude a resolver! Aguardo sua resposta.

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, ta bastante obscuro seu codigo pra mim! baseado nele e de forma bem simples fiz umas melhoras.
o problema acredito eu seja esse cara aqui exe=nav/categoria&pag o redirecionamento tem que ir pra pagina certa!

tem que corrigi isso.


Fiz o seguinte.

funções


//sua função q lista
function get_categoria($conecta,$inicio,$max, &$count) {

   $imovelStatus = 'completo';
   $operacao = isset($_GET['operacao'])?$_GET['operacao']:""; //de onde vc está pegando OPERACAO ?
   $dataVal = date('Y-m-d H:m:s');

   $sql = 'SELECT * FROM d_imoveis 
       WHERE imovelStatus = :imovelStatus 
       AND imovelTermino >= :dataVal AND imovelNegocio = :operacao 
       ORDER BY imovelId DESC LIMIT :i,:m';
   try {
       $query = $conecta->prepare($sql);
       $query->bindValue(':dataVal', $dataVal, PDO::PARAM_STR);
       $query->bindValue(':operacao', $operacao, PDO::PARAM_STR);
       $query->bindValue(':imovelStatus', $imovelStatus, PDO::PARAM_STR);
       $query->bindValue(':i', $inicio, PDO::PARAM_INT);
       $query->bindValue(':m', $max, PDO::PARAM_INT);
       if ($query->execute()) {
           $resultado = $query->fetchAll(PDO::FETCH_ASSOC);
           $count = $query->rowCount();
       }
   } catch (PDOexception $e) {
       echo 'Erro ao selecionar os imoves!'; // var_dump($e); //DEBUG
   }

   foreach ($resultado as $res) {
       $imovelID = $res['imovelId'];
       $thumb = $res['imovelThumb'];
       $titulo = $res['imovelTitulo'];
       $dormitorios = $res['imovelComodos'];
       $data = $res['imovelCadastro'];

       echo '<tr>';
       echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel=' . $imovelID . '"><img src="timthumb.php?src=midias/' . $thumb . '&h=60&w=100&zc=1" alt="' . $titulo . '" title="' . $titulo . '" border="0" /></a></td>';
       echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel=' . $imovelID . '">' . $dormitorios . ' Domitórios</a></td>';
       echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel=' . $imovelID . '">' . date('d/m/Y', strtotime($data)) . '</a></td>';
       echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel=' . $imovelID . '" class="veja_mais">Veja Mais</a></td>';
       echo '</tr>';
   }
}



Pagina categorias listagem

 ini_set('display_errors', 1);error_reporting(E_ALL ); //Habilitando erros 
include"Connections/config.php";
$pag = isset($_GET['pag']) && (int) $_GET['pag'] >= 1 ? $_GET['pag'] : 1;
$maximo = 1;
$inicio = ($pag * $maximo) - $maximo;
$count = 0;
//function lista , pegando parametros
get_categoria($conecta,$inicio,$maximo, $count); //passando Objeto PDO para função e demais parametros

$url = $_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'];// pego URL
$paginas = ceil($count / $maximo); //COUNT e passado por referencia na função. 
$links = 4; //QUANTIDADE DE LINKS NO PAGINATOR

echo "<a href=\"$url?pag=1\">Primeira Página</a>   ";

for ($i = $pag - $links; $i <= $pag - 1; $i++) {
if ($i <= 0) {

} else {
echo"<a href=\"$url?pag=$i\">$i</a>   ";
}
}echo "$pag    ";

for ($i = $pag + 1; $i <= $pag + $links; $i++) {
if ($i > $paginas) {

} else {
echo "<a href=\"$url?pag=$i\">$i</a>   ";
}
}
echo "<a href=\"$url?pag=$paginas\">Última página</a>   ";

 

veja se a SQL retorna todos os dados, se os parametros na URL estão corretos, se o link da paginação estão certos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, Luís. Não consegui implementar o seu código. O único erro que está dando no meu agora é que não está listando os imóveis. Vou para o link 2, por exemplo, e zera o que deveria aparecer um imóvel.

 

Exemplo: Eu tenho 2 imóveis cadastrados. Mostrar 1 imóvel por vez. Clico no link 2 e nada aparece. A mesma coisa com os outros. E só o link 1 fica marcado como se tivesse clicado nele. Não sei o que pode ser. Vou postar meu código aqui. Eu tentei usar o seu, mas ocorreram vários erros.

 

FUNÇÕES.PHP

 

<?php function get_categoria(){

include"Connections/config.php";
$imovelStatus = 'completo';
$dataVal = date('Y-m-d H:m:s');
$operacao = $_GET['operacao'];
$pag = "$_GET[pag]";
if($pag >= '1'){
$pag = $pag;
}else{
$pag = '1';
}

$maximo = '1'; //RESULTADOS POR PÁGINA
$inicio = ($pag * $maximo) - $maximo;

$sql = 'SELECT * FROM d_imoveis WHERE imovelStatus = :imovelStatus AND imovelTermino >= :dataVal AND imovelNegocio = :operacao ORDER BY imovelId DESC LIMIT '.$inicio.','.$maximo;
try{
$query = $conecta->prepare($sql);
$query->bindValue(':dataVal',$dataVal,PDO::PARAM_STR);
$query->bindValue(':operacao',$operacao,PDO::PARAM_STR);
$query->bindValue(':imovelStatus',$imovelStatus,PDO::PARAM_STR);
$query->execute();

$resultado = $query->fetchAll(PDO::FETCH_ASSOC);

}catch(PDOexception $error_imovels){
echo 'Erro ao selecionar os imoves!';
}

foreach($resultado as $res){
$imovelID = $res['imovelId'];
$tipo = $res['imovelTipo'];
$negocio = $res['imovelNegocio'];
$valor = $res['imovelValor'];
$thumb = $res['imovelThumb'];
$titulo = $res['imovelTitulo'];
$dormitorios = $res['imovelComodos'];
$data = $res['imovelCadastro'];

echo '<tr>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'"><img src="timthumb.php?src=midias/'.$thumb.'&h=60&w=100&zc=1" alt="'.$titulo.'" title="'.$titulo.'" border="0" /></a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.$dormitorios.' Domitórios</a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.date('d/m/Y',strtotime($data)).'</a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'" class="veja_mais">Veja Mais</a></td>';
echo '</tr>';


}

}?>

 

CATEGORIA.PHP

 

<div id="pagina">

<h1>Categoria</h1>
<table width="100%" border="0" cellpadding="3" cellspacing="2" bordercolor="#666666";>
<tr style="color:#005789; font-variant:small-caps; font:14px 'Trebuchet MS', Arial, Helvetica, sans-serif;">
<td height="30" align="center" bgcolor="#E0E0E0"><strong>Ilustração:</strong></td>
<td align="center" bgcolor="#E0E0E0"><strong>Dormitórios:</strong></td>
<td align="center" bgcolor="#E0E0E0"><strong>Data do Anúncio:</strong></td>
<td align="center" bgcolor="#E0E0E0"><strong>Acessar:</strong></td>
</tr>
<?php get_categoria();?>
</table>
<div class="paginator">
<?php

$imovelStatus = 'completo';
$dataVal = date('Y-m-d H:m:s');
$operacao = $_GET['operacao'];
$pag = (isset($_GET['pag']));
if($pag >= '1'){
$pag = $pag;
}else{
$pag = '1';
}

$maximo = '1'; //RESULTADOS POR PÁGINA
$inicio = ($pag * $maximo) - $maximo;
$sql = mysql_query("SELECT * FROM d_imoveis WHERE imovelStatus = '$imovelStatus' AND imovelTermino >= '$dataVal' AND imovelNegocio = '$operacao' ORDER BY imovelId DESC");
if( !$sql ) die( mysql_error() );
$sql_res = mysql_query("SELECT * FROM d_imoveis");
$total = mysql_num_rows($sql_res);
$links = '5';

$paginas = ceil($total/$maximo);
$links = '5'; //QUANTIDADE DE LINKS NO PAGINATOR

echo "<a href=\"index.php?pg=categoria&pag=1\">Primeira Página</a>   ";

for ($i = $pag-$links; $i <= $pag-1; $i++){
if ($i <= 0){
}else{
echo"<a href=\"index.php?pg=categoria&pag=$i\">$i</a>   ";
}
}echo "$pag    ";

for($i = $pag +1; $i <= $pag+$links; $i++){
if($i > $paginas){
}else{
echo "<a href=\"index.php?pg=categoria&pag=$i\">$i</a>   ";
}
}
echo "<a href=\"index.php?pg=categoria&paginas=$i\">Última página</a>   ";
?>

</div>
</div><!--fecha pagina-->

_________________________________________________X____________________________________________________

 

Se me ajudar a resolver, agradeceria. Faz dias já! Paginei os arquivos do painel desse mesmo jeito e não me retornou erro. Tentei fazer a mesma coisa com clientes, search e filtro. Mesmo erro! Por favor, me ajude! Só falta isso pra eu terminar. Faz pouco tempo que conheço PHP. Na verdade fiz este portal seguindo um curso em vídeo aula.

 

Obrigada pela ajuda!

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

ahsuahushuah... sem panico.

Como vc é bem verde fiz um exemplo Baseado no seu .

 

Usei ate os mesmos nomes dos campos da tabela pra fica mais facil pra vc.

 

Rode o exemplo Separado veja o funcionamento, depois Adapte a seu codigo..

 

Baixar Exemplo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, Luís. Tudo bem? Quero agradecer a sua ajuda. Descobri por que não está listando. É a variável $operação que é alugar ou vender.

$operacao = $_GET['operacao'];

 

No header eu chamo assim: <li><a href="index.php?pg=categoria&operacao=vender">Comprar</a></li>
<li><a href="index.php?pg=categoria&operacao=alugar">Alugar</a></li>

 

Não está filtrando alugar ou vender. Eu tirei a chamada desta variável do select e funcionou perfeitamente. Eu preciso criar um jeito de filtrar.

 

$sql = 'SELECT * FROM d_imoveis WHERE imovelStatus = :imovelStatus AND imovelTermino >= :dataVal AND imovelNegocio = :operacao ORDER BY imovelId DESC LIMIT '.$inicio.','.$maximo;

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu tinha te alertado mais acho q vc nem percebeu

 

#4

 

   $operacao = isset($_GET['operacao'])?$_GET['operacao']:""; //de onde você está pegando OPERACAO ?

 

Esse filtro em paginação vc poderia fazer com combo box. recuperar o valor do combo com POST e salvar em uma SESSION e filtrar query com valores da session , usando javascript para fazer a requisição.

resolvido?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei esse código e ainda não filtra. Retorna vazio.



Header.php

 

<div id="header_topo">

<a href="index.php"><img src="images/dimoveis_logo.png" alt="Home" title="Home" border="0"/></a>

<ul>
<li><a href="index.php?pg=categoria&operacao=vender">Comprar</a></li>
<li><a href="index.php?pg=categoria&operacao=alugar">Alugar</a></li>
<li><a href="index.php?pg=anuncie">Anunciar</a></li>
<li><a href="index.php?pg=contato">Fale Conosco</a></li>
</ul>

</div><!--fecha header topo-->

 

Categoria.php

 

<div id="pagina">

<h1>Categoria</h1>
<table width="100%" border="0" cellpadding="3" cellspacing="2" bordercolor="#666666";>
<tr style="color:#005789; font-variant:small-caps; font:14px 'Trebuchet MS', Arial, Helvetica, sans-serif;">
<td height="30" align="center" bgcolor="#E0E0E0"><strong>Ilustração:</strong></td>
<td align="center" bgcolor="#E0E0E0"><strong>Dormitórios:</strong></td>
<td align="center" bgcolor="#E0E0E0"><strong>Data do Anúncio:</strong></td>
<td align="center" bgcolor="#E0E0E0"><strong>Acessar:</strong></td>
</tr>
<?php get_categoria();?>
</table>
<div class="paginator">
<?php

$imovelStatus = 'completo';
$dataVal = date('Y-m-d H:m:s');
$operacao = isset($_GET["operacao"])? $_GET["operacao"]:"";
$pag = isset($_GET["pag"]) ? $_GET["pag"] : null;

if($pag >= '1'){

$pag = $pag;

}else{

$pag = '1';

}

$maximo = '1';

$inicio = ($pag * $maximo) - $maximo;
$sql = mysql_query("SELECT * FROM d_imoveis WHERE imovelStatus = '$imovelStatus' AND imovelTermino >= '$dataVal' AND imovelNegocio = '$operacao' ORDER BY imovelId DESC");

$sql_res = mysql_query("SELECT * FROM d_imoveis");
$total = mysql_num_rows($sql_res);




$paginas = ceil($total/$maximo);
$links = '4'; //QUANTIDADE DE LINKS NO PAGINATOR

echo "<a href=\"index.php?pg=categoria&pag=1\">Primeira Página</a>   ";

for ($i = $pag-$links; $i <= $pag-1; $i++){
if ($i <= 0){
}else{
echo"<a href=\"index.php?pg=categoria&pag=$i\">$i</a>   ";
}
}echo "$pag    ";

for($i = $pag +1; $i <= $pag+$links; $i++){
if($i > $paginas){
}else{
echo "<a href=\"index.php?pg=categoria&pag=$i\">$i</a>   ";
}
}
echo "<a href=\"index.php?pg=categoria&pag=$paginas\">Última página</a>   ";
?>

</div>
</div><!--fecha pagina-->

Funções.php

 

<?php function get_categoria(){

include"Connections/config.php";
$imovelStatus = 'completo';
$dataVal = date('Y-m-d H:m:s');
$operacao = isset($_GET["operacao"])? $_GET["operacao"]:"";
$pag = isset($_GET["pag"]) ? $_GET["pag"] : null;

if($pag >= '1'){

$pag = $pag;

}else{

$pag = '1';

}

$maximo = '1';

$inicio = ($pag * $maximo) - $maximo;

$sql = 'SELECT * FROM d_imoveis WHERE imovelStatus = :imovelStatus AND imovelTermino >= :dataVal AND imovelNegocio = :operacao ORDER BY imovelId DESC LIMIT '.$inicio.','.$maximo;
try{
$query = $conecta->prepare($sql);
$query->bindValue(':dataVal',$dataVal,PDO::PARAM_STR);
$query->bindValue(':operacao',$operacao,PDO::PARAM_STR);
$query->bindValue(':imovelStatus',$imovelStatus,PDO::PARAM_STR);
$query->execute();

$resultado = $query->fetchAll(PDO::FETCH_ASSOC);

}catch(PDOexception $error_imovels){
echo 'Erro ao selecionar os imoves!';
}

foreach($resultado as $res){
$imovelID = $res['imovelId'];
$tipo = $res['imovelTipo'];
$negocio = $res['imovelNegocio'];
$valor = $res['imovelValor'];
$thumb = $res['imovelThumb'];
$titulo = $res['imovelTitulo'];
$dormitorios = $res['imovelComodos'];
$data = $res['imovelCadastro'];

echo '<tr>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'"><img src="timthumb.php?src=midias/'.$thumb.'&h=60&w=100&zc=1" alt="'.$titulo.'" title="'.$titulo.'" border="0" /></a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.$dormitorios.' Domitórios</a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.date('d/m/Y',strtotime($data)).'</a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'" class="veja_mais">Veja Mais</a></td>';
echo '</tr>';


}

}?>



Desculpe minha ignorância no assunto, estou aprendendo PHP agora. Desde já agradeço a sua boa vontade em me ajudar. Acho que é coisa simples. Pois quando tiro a variável operação do select, ele filtra certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

função.php;
<?php
@session_start(); //inicia session
function get_categoria(){
    $_SESSION['operacao'] = isset($_GET['operacao'])?$_GET['operacao'] : "vender";
   $operacao =  $_SESSION['operacao'];
///segue resto
TROQUE 
$operacao = isset($_GET["operacao"])? $_GET["operacao"]:"";
POR
$operacao =  $_SESSION['operacao'];

 

deve resolve

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, Luís. Funcionou! Muito obrigada. Só que eu troquei:

$_SESSION['operacao'] = isset($_GET['operacao'])?$_GET['operacao'] : "vender";

POR

 

$_SESSION['operacao'] = isset($_GET['operacao'])?$_GET['operacao'] : "alugar";

Para testar, pois só tenho imóveis a alugar no momento. Uma dúvida: E para vender? No caso é só criar mais uma linha:

$_SESSION['operacao'] = isset($_GET['operacao'])?$_GET['operacao'] : "vender";???

Vou fazer testes aqui. Agradeço a sua ajuda! Muito obrigada mesmo! Deus te abençôe!

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Para testar, pois só tenho imóveis a alugar no momento. Uma dúvida: E para vender? No caso é só criar mais uma linha:

$_SESSION['operacao'] = isset($_GET['operacao'])?$_GET['operacao'] : "vender";???

 

Não.

 

Qndo vc clica nos links:

<li><a href="index.php?pg=categoria&operacao=vender">Comprar</a></li>

<li><a href="index.php?pg=categoria&operacao=alugar">Alugar</a></li>

 

o SESSION muda dinamicamente para vender ou alugar. deixe o codigo como está

 

Somente insira imoveis com operação "vender" e faça os teste.

 

Bom estudos ^^ , E não use DreaWeaver kkkkkkk...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, Luís. Fiz como falou! Em comprar colocou o imóvel a vender corretamente. Mas colocou link 2, 3 e 4. Deveria ser só o 1, pois só tem 1 imóvel. Em alugar eu tenho 3 imóveis cadastrados. E os links 2, 3 e 4. Só que quando clico nos outros links zera a lista.

Vou postar aqui como ficou:

 

CATEGORIA.PHP

<div id="pagina">

<h1>Categoria</h1>
<table width="100%" border="0" cellpadding="3" cellspacing="2" bordercolor="#666666";>
<tr style="color:#005789; font-variant:small-caps; font:14px 'Trebuchet MS', Arial, Helvetica, sans-serif;">
<td height="30" align="center" bgcolor="#E0E0E0"><strong>Ilustração:</strong></td>
<td align="center" bgcolor="#E0E0E0"><strong>Dormitórios:</strong></td>
<td align="center" bgcolor="#E0E0E0"><strong>Data do Anúncio:</strong></td>
<td align="center" bgcolor="#E0E0E0"><strong>Acessar:</strong></td>
</tr>
<?php get_categoria();?>
</table>
<div class="paginator">
<?php

$imovelStatus = 'completo';
$dataVal = date('Y-m-d H:m:s');
$operacao = $_SESSION['operacao'];
$pag = "$_GET[pag]";

if($pag >= '1'){

$pag = $pag;

}else{

$pag = '1';

}

$maximo = '1';

$inicio = ($pag * $maximo) - $maximo;
$sql = mysql_query("SELECT * FROM d_imoveis WHERE imovelStatus = '$imovelStatus' AND imovelTermino >= '$dataVal' AND imovelNegocio = '$operacao' ORDER BY imovelId DESC");

$sql_res = mysql_query("SELECT * FROM d_imoveis");
$total = mysql_num_rows($sql_res);




$paginas = ceil($total/$maximo);
$links = '4'; //QUANTIDADE DE LINKS NO PAGINATOR

echo "<a href=\"index.php?pg=categoria&pag=1\">Primeira Página</a>   ";

for ($i = $pag-$links; $i <= $pag-1; $i++){
if ($i <= 0){
}else{
echo"<a href=\"index.php?pg=categoria&pag=$i\">$i</a>   ";
}
}echo "$pag    ";

for($i = $pag +1; $i <= $pag+$links; $i++){
if($i > $paginas){
}else{
echo "<a href=\"index.php?pg=categoria&pag=$i\">$i</a>   ";
}
}
echo "<a href=\"index.php?pg=categoria&pag=$paginas\">Última página</a>   ";
?>

</div>
</div><!--fecha pagina-->

FUNÇÕES.PHP

 

<?php

@session_start(); //inicia session

function get_categoria(){
include"Connections/config.php";

$_SESSION['operacao'] = isset($_GET['operacao'])?$_GET['operacao'] : "vender";

$operacao = $_SESSION['operacao'];


$imovelStatus = 'completo';
$dataVal = date('Y-m-d H:m:s');
$operacao = $_SESSION['operacao'];
$pag = "$_GET[pag]";

if($pag >= '1'){

$pag = $pag;

}else{

$pag = '1';

}

$maximo = '1';

$inicio = ($pag * $maximo) - $maximo;

$sql = 'SELECT * FROM d_imoveis WHERE imovelStatus = :imovelStatus AND imovelTermino >= :dataVal AND imovelNegocio = :operacao ORDER BY imovelId DESC LIMIT '.$inicio.','.$maximo;
try{
$query = $conecta->prepare($sql);
$query->bindValue(':dataVal',$dataVal,PDO::PARAM_STR);
$query->bindValue(':operacao',$operacao,PDO::PARAM_STR);
$query->bindValue(':imovelStatus',$imovelStatus,PDO::PARAM_STR);
$query->execute();

$resultado = $query->fetchAll(PDO::FETCH_ASSOC);

}catch(PDOexception $error_imovels){
echo 'Erro ao selecionar os imoves!';
}

foreach($resultado as $res){
$imovelID = $res['imovelId'];
$tipo = $res['imovelTipo'];
$negocio = $res['imovelNegocio'];
$valor = $res['imovelValor'];
$thumb = $res['imovelThumb'];
$titulo = $res['imovelTitulo'];
$dormitorios = $res['imovelComodos'];
$data = $res['imovelCadastro'];

echo '<tr>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'"><img src="timthumb.php?src=midias/'.$thumb.'&h=60&w=100&zc=1" alt="'.$titulo.'" title="'.$titulo.'" border="0" /></a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.$dormitorios.' Domitórios</a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.date('d/m/Y',strtotime($data)).'</a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'" class="veja_mais">Veja Mais</a></td>';
echo '</tr>';


}

}?>

<?php

Compartilhar este post


Link para o post
Compartilhar em outros sites

=X . Vamo lá.

 

então vc viu o exemplo q fiz e Zipei ? (Baixar Exemplo).

 

Testo Ele?

 

Bom, corrige tudo aqui pra vc. Ta com todas correções é vc substitui ai pelo seu.

funções.php

 function get_categoria($conecta, $start, $limit) {    $operacao = $_SESSION['operação'] = isset($_GET['operacao']) ? $_GET['operacao'] : "alugar";    $dataVal = date('Y-m-d H:m:s');    $LIMIT = ' LIMIT ' . (int) $start . ', ' . (int) $limit;        $sql = "SELECT * FROM d_imoveis        WHERE imovelStatus = 'completo'         AND imovelTermino >= :dataVal        AND imovelNegocio = :operacao ORDER BY imovelId DESC " . $LIMIT;     try {        $query = $conecta->prepare($sql);        $query->bindValue(':dataVal', $dataVal, PDO::PARAM_STR);        $query->bindValue(':operacao', $operacao, PDO::PARAM_STR);        if ($query->execute()) {            $resultado = $query->fetchAll(PDO::FETCH_ASSOC);        }    } catch (PDOexception $e) {        var_dump($e);    }    foreach ($resultado as $res) {        $imovelID = $res['imovelId'];        $tipo = $res['imovelTipo']; //essa variavel não é usada        $negocio = $res['imovelNegocio']; //essa variavel não é usada        $valor = $res['imovelValor']; //essa variavel não é usada        $thumb = $res['imovelThumb'];        $titulo = $res['imovelTitulo'];        $dormitorios = $res['imovelComodos'];        $data = $res['imovelCadastro'];         echo '<tr>';        echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel=' . $imovelID . '"><img src="timthumb.php?src=midias/' . $thumb . '&h=60&w=100&zc=1" alt="' . $titulo . '" title="' . $titulo . '" border="0" /></a></td>';        echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel=' . $imovelID . '">' . $dormitorios . ' Domitórios</a></td>';        echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel=' . $imovelID . '">' . date('d/m/Y', strtotime($data)) . '</a></td>';        echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel=' . $imovelID . '" class="veja_mais">Veja Mais</a></td>';        echo '</tr>';    }}

 

categoria.php

<div id="pagina">    <h1>Categoria</h1>    <table width="100%" border="0" cellpadding="3" cellspacing="2" bordercolor="#666666";>        <tr style="color:#005789; font-variant:small-caps; font:14px 'Trebuchet MS', Arial, Helvetica, sans-serif;">            <td height="30" align="center" bgcolor="#E0E0E0"><strong>Ilustração:</strong></td>            <td align="center" bgcolor="#E0E0E0"><strong>Dormitórios:</strong></td>            <td align="center" bgcolor="#E0E0E0"><strong>Data do Anúncio:</strong></td>            <td align="center" bgcolor="#E0E0E0"><strong>Acessar:</strong></td>        </tr>        <?php        date_default_timezone_set('America/Sao_Paulo'); //DEFINE limite itens por pagina        define('PER_PG', 3);//DEFINE quantidade de exibição de links        define('PER_LINK', 4);        @session_start(); //inicia session         include"Connections/config.php";        include 'funcoes.php';         $pag = isset($_GET['pag']) ? $_GET['pag'] : 1;         $init = ( $pag - 1) * PER_PG;         get_categoria($conecta,$init,PER_PG); //list aos dados function        ?>    </table>    <div class="paginator">           <?php/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////         $url = 'index.php?pg=categoria'; //seu link         $links = PER_LINK; //QUANTIDADE DE LINKS NO PAGINATOR        //conta os resultados. OBS: "tratar essa query com Try cacth e PDOException"        $query = $conecta->prepare("SELECT COUNT(*) as count FROM d_imoveis WHERE imovelStatus = 'completo'            AND imovelNegocio = :operacao        AND imovelTermino >= :dataVal");         $query->bindValue(':dataVal', date('Y-m-d H:m:s'), PDO::PARAM_STR);        $query->bindValue(':operacao', $_SESSION['operacao'], PDO::PARAM_STR);        if ($query->execute()) {            $count = $query->fetch(PDO::FETCH_OBJ);        }        if (!$count->count)            die('Não A dados para Listagem'); //mata o fluxo caso não aja resultados.         $paginas = ceil($count->count / PER_PG);/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////criando todo HTML        echo "<a href=\"$url&pag=1\">Primeira Página</a>   ";        for ($i = $pag - $links; $i <= $pag - 1; $i++) {            if ($i <= 0) {                            } else                echo"<a href=\"$url&pag=$i\">$i</a>   ";        }echo "$pag    ";        for ($i = $pag + 1; $i <= $pag + $links; $i++) {            if ($i > $paginas) {                            } else                echo "<a href=\"$url&pag=$i\">$i</a>   ";        }        echo "<a href=\"$url&pag=$paginas\">Última página</a>   ";        ?>    </div></div>

 

faça baseado no codigo q te mandei

 

o problema no seu é isso

[inline] $pag = "$_GET[pag]";
if($pag >= '1'){
$pag = $pag;
}else{
$pag = '1';
}
$maximo = '1';
$inicio = ($pag * $maximo) - $maximo;[/inline]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, Luís. Coloquei o seu código. Comprar aparece certo. Com 1 link, já que tem 1 imóvel. O problema está em alugar. Aparecem os 3 imóveis, só com 1 link: Primeira página - 1 - Próxima Página. Quando clico em Primeira página ou próxima página aparece o imóvel que está para comprar.

 

$operacao = $_SESSION['operacao'] = isset($_GET['operacao']) ? $_GET['operacao'] : "alugar";

 

Porque quando coloco "$operacao = $_SESSION['operacao'] = isset($_GET['operacao']) ? $_GET['operacao'] : "alugar";" e vou em comprar, ao clicar em Primeira página ou última página de comprar, filtra os imóveis a alugar.

 

Tentei criar uma condição antes desta instrução $operacao = $_SESSION['operacao'] = isset($_GET['operacao']) ? $_GET['operacao'] : "alugar"; mas também não deu certo. Só falta isso agora!

 

Fiz assim:

 

if($operacao="alugar"){
$operacao = $_SESSION["operacao"] = isset($_GET["operacao"]) ? $_GET["operacao"] : "alugar";
}else{
$operacao = $_SESSION["operacao"] = isset($_GET["operacao"]) ? $_GET["operacao"] : "vender";
}

 

Não deu certo! Continua o erro...

 

Desculpe minha ignorância.

Por favor, me ajude a consertar! Você sabe muito bem esta linguagem. Deve ser algo bem simples! Desculpe te incomodar.

 

Muito obrigada por tudo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Daiana o filtro acontece aqui

 

<li><a href="index.php?pg=categoria&operacao=vender">Comprar</a></li>
<li><a href="index.php?pg=categoria&operacao=alugar">Alugar</a></li>

 

O paremetro operação é guardado na SESSION['operaco']; , vc faz a paginação ou por vender ou alugar.

 

comprar???

 

existem qntos tipos de status?

 

veja bem!

fiz o filtro baseado apenas em ALUGAR e VENDER.

sua query não vai exibir nada diferente disso.

ISSO NÂO FUNCIONA seu if apenas passa true nunca vai cair no else =X
 if($operacao="alugar"){
       $operacao = $_SESSION["operacao"] = isset($_GET["operacao"]) ? $_GET["operacao"] : "alugar";
   }else{
       $operacao = $_SESSION["operacao"] = isset($_GET["operacao"]) ? $_GET["operacao"] : "vender";
   }
ISSO ja é um IF
 $operacao = $_SESSION["operacao"] = isset($_GET["operacao"]) ? $_GET["operacao"] : "alugar";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como faço para resolver isto? Está certo, só tem esse erro. Não está fazendo distinção entre vender e alugar.

$operacao = $_SESSION["operacao"] = isset($_GET["operacao"]) ? $_GET["operacao"] : "alugar";

 

Em comprar, nos links Primeira página e próxima página redireciona para os imóveis a alugar.

 

Obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

click no link

<li><a href="index.php?pg=categoria&operacao=vender">Comprar</a></li>
<li><a href="index.php?pg=categoria&operacao=alugar">Alugar</a></li>

 

Ja ta certo

a partir dai, o SESSION ja recebe o valor, vender ou alugar.

 

faz o teste assim .

 

onde ta -> @session_start(); //inicia session loga abaixo adicione

var_dump(@$_SESSION['operacao']); veja oque ta parecendo qndo vc clica nos links

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, Luís. Consegui resolver o problema! Obrigada pela sua ajuda. Ao chamar os links, fiz assim:

 

Primeira página:

echo "<a href=\"$url&operacao=$operacao&pag=1\">Primeira Página</a>   ";

 

Variável $i:

echo"<a href=\"$url&operacao=$operacao&pag=$i\">$i</a>   ";

 

Variável $pag:

echo "<a href=\"$url&operacao=$operacao&pag=$i\">$i</a>   ";

 

Última página:

echo "<a href=\"$url&operacao=$operacao&pag=$paginas\">Última página</a>   ";

 

O seu código salvou a minha vida! Agradeço de coração. Deus te abençôe sempre!

Muito obrigada mesmo!

Abraços!

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.