Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ae galera,
Tenho um site de classificados. Na hora de exibir os resultados da busca, tem aquele clássico select de ordenação (ordenar por anuncios novos, antigos, maior preço pro menor preço e menor preço pro maior preço).
Na minha tabela, existem vários campos, porém os dois focados do erro são:
>
idAnuncio | preco
1| 12000000
2| 900000
Os valores do preço são inseridos todos juntos, sem formatação quanto a centavos e milhares. Ou seja, 120.000,00 é inserido como 12000000.
O meu problema é na hora de ordenar pelo preco. Por exemplo, se eu mando ordenar por preço decrescente, o anúncio 2 vem na frente do anúncio 1 (oO).
Segue a parte do meu código que é responsável pela busca:
if(isset($_GET["sort"])) {
$array = array('1','2','3','4');
if(in_array($_GET["sort"], $array)) {
switch($_GET["sort"]) {
case '1': $sort = "ORDER BY idAnuncio DESC";
break;
case '2': $sort = "ORDER BY idAnuncio ASC";
break;
case '3': $sort = "ORDER BY preco DESC";
break;
case '4': $sort = "ORDER BY preco ASC";
break;
}
$st = $_GET["sort"];
}
else {
$sort = "";
$st = "";
}
}
else {
$sort = "ORDER BY idAnuncio DESC";
$st = "";
}
$complete = "AND status='1'";
if(!empty($ec) && !empty($ef)) $complete .= " AND preco BETWEEN $ec AND $ef";
if(!empty($type)) $complete .= " AND tipo='$type'";
if(!empty($cid)) $complete .= " AND cidade_a='$cid'";
$busca_1 = "SELECT * FROM $tableoffers WHERE (categoria='$key' OR subcategoria='$key') $complete $sort";
O que pode ser?
Falo!
Carregando comentários...