Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite a todos. Faz tempo que estou com problema de ordenação no portal que estou tentando desenvolver. Utilizo php, pdo e MySql.
Não ordena conforme o comando. Pelo order by.
sp.php
<div id="pagina" >
<?php include"nav/pagina_left.php";?>
<div id="pagina_center">
<div id="lista">
<?php
if (isset($_GET['imobvendSP'])){
$imovelStatus = 'completo';
$dataVal = date('Y-m-d H:m:s');
$operaNegocio = 'venda';
$operaCidade = 'Sao Paulo';
$pag = isset($_GET["pag"]) ? $_GET["pag"] : null;
if($pag >= '1'){
$pag = $pag;
}else{
$pag = '1';
}
$maximo = '2'; //RESULTADOS POR PÁGINA
$inicio = ($pag * $maximo) - $maximo;
$conn = new PDO('mysql:host=localhost;dbname=imobi', 'root', '');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$select = $conn->query("SELECT * FROM d_imoveis
WHERE imovelTermino >= '$dataVal'
AND imovelStatus = '$imovelStatus'
AND imovelCidade = '$operaCidade'
AND imovelNegocio = '$operaNegocio' ORDER BY imovelId DESC LIMIT " .$inicio. ", " .$maximo);
$result_total = $conn->query("SELECT count(*) as total FROM d_imoveis
WHERE imovelTermino >= '$dataVal'
AND imovelStatus = '$imovelStatus'
AND imovelCidade = '$operaCidade'
AND imovelNegocio = '$operaNegocio' ORDER BY imovelId DESC ")->fetch(PDO::FETCH_OBJ);
if ($result_total === "0")
echo "<h1>Sem dados para paginação</h1>";
$links = '5';
$paginas = ceil($result_total->total/$maximo);
$conn = null;
$links = '5'; //QUANTIDADE DE LINKS NO PAGINATOR
$anterior = (($pag - 1) == 0) ? 1 : $pag - 1;
$total_provisorio = ceil($result_total->total/$maximo)/$pag;
echo'<div id="ordena">
<form name="filtrar" action="" method="post">
<label>Ordenar por:</label>
<select name="ordem" >
<option value="">Ordenar lista</option>
<option value="area" name="area">Área</option>
<option value="maior" name="maior">Maior Valor</option>
<option value="menor" name="menor" >Menor Valor</option>
<option value="banheiros" name="banheiros">Nº de Banheiros</option>
<option value="dormitorios" name="dormitorios" >Nº de Dormitórios</option>
</select>
<input type="hidden" name="accao" value="filtrar" />
<input type="submit" name="executar" id="executar" value="Filtrar"/>
</form>';
echo'<h1>Imóveis:' .$pag.'-'.$total_provisorio.' de '.$result_total->total.'</h1>
</div><!--ordena--> ';?>
<?php echo imobvendSP();
$imobvendsp = $_GET['imobvendsp'];
echo'<div id="paginar">';
echo'<div class="paginator">';
echo "<a href=\"index.php?pg=sp/imobvendsp/sp&imobvendSP=imobvendSP&pag=1\">Primeira</a> ";
echo "<a href=\"index.php?pg=sp/imobvendsp/sp&imobvendSP=imobvendSP&pag=$anterior\">Anterior</a> ";
for ($i = $pag-$links; $i <= $pag-1; $i++){
if ($i <= 0){
}else{
echo"<a href=\"index.php?pg=sp/imobvendsp/sp&imobvendSP=imobvendSP&pag=$i\">$i</a> ";
}
}echo "$pag ";
for($i = $pag +1; $i <= $pag+$links; $i++){
if($i > $paginas){
}else{
echo "<a href=\"index.php?pg=sp/imobvendsp/sp&imobvendSP=imobvendSP&pag=$i\">$i</a> ";
}
}
$posterior = (($pag + 1) >= $paginas) ? $paginas : $pag + 1;
echo "<a href=\"index.php?pg=sp/imobvendsp/sp&imobvendSP=imobvendSP&pag=$posterior\">Próxima</a> ";
echo "<a href=\"index.php?pg=sp/imobvendsp/sp&imobvendSP=imobvendSP&pag=$paginas\">Última</a> ";
echo'</div>';
echo'</div>';
}
?>
</div>
</div><!--pagina center-->
<?php include"nav/pagina_right.php";?>
</div><!--fecha pagina-->
func_sp.php
<?php
ini_set('default_charset','UTF-8');
mysql_set_charset('utf8');
function imobvendSP(){
include"Connections/config.php";
$ordem = '';
if(isset($_POST['executar']) && $_POST['executar'] == 'Filtrar'){
switch (isset($_GET['ordem'])) {
case 'area':
$ordem = " ORDER BY imovelArea DESC LIMIT ".$inicio.','.$maximo;
break;
case 'maior':
$ordem = " ORDER BY imovelValor DESC LIMIT ".$inicio.','.$maximo;
break;
case 'menor':
$ordem = " ORDER BY imovelValor ASC LIMIT ".$inicio.','.$maximo;
break;
case 'banheiros':
$ordem = " ORDER BY imovelBanheiros DESC LIMIT ".$inicio.','.$maximo;
break;
case 'dormitorios':
$ordem = " ORDER BY imovelDormitorios DESC LIMIT ".$inicio.','.$maximo;
break;
default:
$ordem = " ORDER BY imovelId DESC ";
}
}
$imovelStatus = 'completo';
$operaNegocio = 'venda';
$operaCidade = 'Sao Paulo';
$dataVal = date('Y-m-d H:m(worry)');
$pag = isset($_GET["pag"]) ? $_GET["pag"] : null;
if($pag >= '1'){
$pag = $pag;
}else{
$pag = '1';
}
$maximo = '2'; //RESULTADOS POR PÁGINA
$inicio = ($pag * $maximo) - $maximo;
if(isset($_POST['executar']) && $_POST['executar'] == 'Filtrar'){
switch (isset($_POST['ordem'])) {
case 'area':
$ordem = "ORDER BY imovelArea DESC LIMIT ".$inicio.','.$maximo;
break;
case 'maior':
$ordem = "ORDER BY imovelValor DESC LIMIT ".$inicio.','.$maximo;
break;
case 'menor':
$ordem = "ORDER BY imovelValor ASC LIMIT ".$inicio.','.$maximo;
break;
case 'banheiros':
$ordem = "ORDER BY imovelBanheiros DESC LIMIT ".$inicio.','.$maximo;
break;
case 'dormitorios':
$ordem = "ORDER BY imovelDormitorios DESC LIMIT ".$inicio.','.$maximo;
break;
default:
$ordem = "ORDER BY imovelId DESC ";
}
}
$sql = "SELECT * FROM d_imoveis
WHERE imovelTermino >= :dataVal
AND imovelStatus = :imovelStatus
AND imovelNegocio = :operaNegocio
AND imovelCidade = :operaCidade ".$ordem;
try{
$query = $conecta->prepare($sql);
$query->bindValue(':dataVal', date('Y-m-d H:m:s'),PDO::PARAM_STR);
$query->bindValue(':operaNegocio', $operaNegocio,PDO::PARAM_STR);
$query->bindValue(':operaCidade', $operaCidade,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'];
$bairro = $res['imovelBairro'];
$cidade = $res['imovelCidade'];
$estado = $res['imovelEstado'];
$rua = $res['imovelRua'];
$area = $res['imovelArea'];
$garagem = $res['imovelGaragem'];
$suites = $res['imovelSuites'];
$banheiros = $res['imovelBanheiros'];
$salas = $res['imovelSalas'];
$desc = $res['imovelDescricao'];
echo'<ul>';
echo '<li>';
echo'<a href="index.php?pg=single&imovel=' . $imovelID . '"><img src="timthumb.php?src=midias/' . $thumb . '&h=120&w=160&zc=1" alt="' . $titulo . '" title="' . $titulo . '" border="0" /></a>';
echo '<span><a href="index.php?pg=single&imovel=' . $imovelID . '">R$ ' . $valor . ' - ' . $tipo . ' para ' . $negocio . ' </a></span>';
echo '<h1><a href="index.php?pg=single&imovel=' . $imovelID . '">' . $rua . ', ' . $bairro . ', ' . $cidade . ', ' . $estado . ' </a></h1>';
echo '<h2><a href="index.php?pg=single&imovel=' . $imovelID . '"> '.$area . ' m² | ' . $dormitorios . ' dormitórios | Garagem: ' . $garagem .' </a></h2>';
echo '<h2><a href="index.php?pg=single&imovel=' . $imovelID . '"> '. $suites . ' Suítes | ' . $banheiros. ' banheiros | '. $salas.' Salas </a></h2>';
echo '<h3><a href="index.php?pg=single&imovel=' . $imovelID . '"> '. $titulo . ' </a></h3>';
echo '<h4> <a href="#" id="mostrar"><img src="images/visualizar.png" width="15 " height="15"/>Visualizar descrição</a></h4>';
echo'<div id="descricao" ><h1>'. $desc . '</h1></div>';
echo '<h5><a href="index.php?pg=single&imovel=' . $imovelID . '">Ver outros detalhes</a></h5>';
echo '<h6><a href="#">Contatar anunciante</a></h6>';
echo'</li>';
echo'</ul>';
}
}
?>Carregando comentários...