Pesquisar na Comunidade
Mostrando resultados para as tags ''ordenacao php''.
Encontrado 1 registro
-
[Ajuda] Ordenação de lista de dados por 2 campos
uma questão postou wilterson Tutoriais & Dicas - PHP
Boa Tarde.. Estou desenvolvendo uma aplicação, e agora me bati com um problema que não estou conseguindo resolver. é o seguinte: tenho uma página que será mostrado todas as pessoas cadastradas no sistema, a página mostrara as pessoas em blocos montados pelo while vindas do banco de dados. o Código: visualiza.php <?php require ('conecta.php'); //verifica a página atual caso seja informada na URL, senão atribui como 1ª página $pagina_atual = (isset($_GET['pagina']))? $_GET['pagina'] : 1; //seleciona todos os itens da tabela $cmd = "SELECT id, nome, celular, foto, email FROM cadastro"; $cadastros = mysql_query($cmd); //conta o total de itens $total = mysql_num_rows($cadastros); //seta a quantidade de itens por página, neste caso, 10 itens $registros = 15; //calcula o número de páginas arredondando o resultado para cima $paginas = ceil($total/$registros); //variavel para calcular o início da visualização com base na página atual $inicio = ($registros*$pagina_atual)-$registros; //seleciona os itens por página $cmd = "SELECT id, nome, celular, foto, email, tipo, idade, cidade, estado FROM cadastro WHERE nome LIKE '$filtro%' OR tipo like '$filtro%' or cidade like '$filtro%' ORDER BY $order ASC LIMIT $inicio,$registros"; $cadastros = mysql_query($cmd); $total = mysql_num_rows($cadastros); //exibe os produtos selecionados while ($row = mysql_fetch_array($cadastros)) { $id = $row['id']; $nome = $row['nome']; $foto = $row['foto']; $celular = $row['celular']; $email = $row['email']; $tipo = $row['tipo']; $idade = $row['idade']; $cidade = $row['cidade']; $estado = $row['estado']; //BLOCO CONTENDO UM PERFIL echo "<div class='vitrine col-xs-12'> <div class='foto col-xs-3'> <img alt='foto do perfil' title='foto perfil $nome' src='$foto' class='img-thumbnail'/> </div> <div class='col-xs-1'></div> <div class='wrapp'> <div class='infos col-xs-5'> <div class='col-sm-12'> <label class='nome'> $nome</label> </div> <div class='col-sm-12'> <label>E-mail:</label> <span> $email</span> </div> <div class='col-sm-12'> <label>Celular:</label> <span>$celular</span> </div> <div class='hidden'> <input type='text' name='id' value='$id'> </div> <br/> <div class='col-sm-12'> <label>Idade:</label> <span class=''>$idade</span> </div> <div class='col-sm-12'> <label>Cidade: </label> <span class=''>$cidade - $estado</span> </div> <div class='col-sm-12'> <label>Classificação:</label> <span class='tipo'>$tipo</span> </div> </div> </div> <div class='col-sm-3 centraliza'> <a class='btn btn-lg button' href='perfil.php?id=$id'><span class='icon-search'></span> Ver Perfil </a> </div> </div> <div class='clearfix'></div>"; } //Exibe a paginação echo "<div class='paginacao col-xs-12 row'>"; echo"<div class='centro'>"; //Primeira página e Anterior if ($pagina_atual == 1){ echo"<a class='btn btn-default ativo disabled'>Primeira</a>"; echo"<a class='btn btn-default ativo disabled'>Anterior</a>"; }else{ echo"<a href='?pagina=1&filtro=$filtro&order=$order' class='btn btn-default'>Primeira</a>"; echo"<a href='?pagina=".($pagina_atual-1)."&filtro=$filtro&order=$order' class='btn btn-default'>Anterior</a>"; } if($pagina_atual>=5){ echo" . . . "; } // 3 Páginas antes foreach(array_reverse(range($pagina_atual-1, $pagina_atual-3)) as $pagina){ if ($pagina > 0){ echo "<a href='?pagina=$pagina&filtro=$filtro&order=$order' class='btn btn-default'>$pagina</a>"; } } // Página Atual echo"<a class='btn btn-default ativo'>$pagina_atual</a>"; //3 Páginas depois da Página atual foreach( range($pagina_atual+1, $pagina_atual+3) as $pagina){ if ($pagina < ($paginas +1)){ echo"<a href='?pagina=$pagina&filtro=$filtro&order=$order' class='btn btn-default'>$pagina</a>"; } } $limitePaginas = $paginas-4; if($pagina_atual<=$limitePaginas){ echo" . . . "; } //'Próxima Página' e 'Ultima Página' if ($pagina_atual == $paginas){ echo"<a class='btn btn-default ativo disabled'>Próxima</a>"; echo"<a class='btn btn-default ativo disabled'>Última</a>"; }else{ echo"<a href='?pagina=".($pagina_atual+1)."&filtro=$filtro&order=$order' class='btn btn-default'>Próxima</a>"; echo"<a href='?pagina=".($paginas)."&filtro=$filtro&order=$order' class='btn btn-default'>Última</a>"; } echo"</div>"; echo "</div>"; ?> A Página: http://uploaddeimagens.com.br/imagens/1-png--1730 (não consegui posta-la aqui). Continuando.. nessa pagina tenho botoes que fazem a ordenacao dos resultados por NOME, IDADE, CIDADE, ESTADO, TIPO DE PERFIL (a,b,c ou d) o código dos botões de ordenação.. <div class="col-lg-2"> <a href="?order=nome&filtro=<?php echo $filtro; ?>" class="btn btn-default"><span class="orderNome"><img src="img/sort14.png">Ordenar por Nome</span></a> </div> <div class="col-lg-2"> <a href="?order=tipo&filtro=<?php echo $filtro; ?>" class="btn btn-default"><span class="orderTipo"><img src="img/sort14.png">Ordenar por Tipo</span></a> </div> <div class="col-lg-2"> <a href="?order=idade&filtro=<?php echo $filtro; ?>" class="btn btn-default"><span class="orderIdade"><img src="img/sort14.png">Ordenar por Idade</span></a> </div> <div class="col-lg-2"> <a href="?order=cidade&filtro=<?php echo $filtro; ?>" class="btn btn-default"><span class="orderCidade"><img src="img/sort14.png">Ordenar por Cidade</span></a> </div> <div class="col-lg-2"> <a href="?order=estado&filtro=<?php echo $filtro; ?>" class="btn btn-default"><span class="orderEstado"><img src="img/sort14.png">Ordenar por Estado</span></a> </div> Passando via get a 'order' para a mesma página.. no inicio contem: <?php //Foi informado a ordenação? $order = (isset($_GET['order'])) ? $_GET['order'] : 'id'; //Foi informado o filtro? $filtro = (isset($_GET['filtro'])) ? $_GET['filtro'] : ''; ?> E depois desse mega texto, minha pequena dúvida.. Como faço para ordenar por mais de um botão? Quero ordenar por idade e por tipo, por exemplo.. mas ele ordena por Idade OU por titulo. (devido ao método get que usei para passar a informacao de ordenacao).. Se alguém puder me ajudar.. :D Obrigado... Página inteira: <?php //Foi informado a ordenação? $order = (isset($_GET['order'])) ? $_GET['order'] : 'id'; //Foi informado o filtro? $filtro = (isset($_GET['filtro'])) ? $_GET['filtro'] : ''; ?> <!DOCTYPE html> <html lang="pt"> <head> <meta charset="utf-8"> <title>Visualizar cadastros</title> <meta name="description" content="Visualizar cadastros do casting - Promova ideias"> <meta name="author" content="Wilterson Garcia"> <!-- CSS --> <link rel="stylesheet" href="css/vitrine.css"/> <link rel="stylesheet" href="css/bootstrap.css" /> <!-- JS --> <script type="text/javascript" src="js/jquery.min.js"></script> <script> $(function(){ $('.pesquisar').on("click", function(){ $('.searchbar').toggleClass('hidden'); }); }); </script> </head> <body> <div class="page"> <h1 class="text-center titulo">Pessoas Cadastradas</h1> <div class="container"> <div class="primeiraLinha"> <div class="col-lg-2"> <a href="?order=nome&filtro=<?php echo $filtro; ?>" class="btn btn-default"><span class="orderNome"><img src="img/sort14.png">Ordenar por Nome</span></a> </div> <div class="col-lg-2"> <a href="?order=tipo&filtro=<?php echo $filtro; ?>" class="btn btn-default"><span class="orderTipo"><img src="img/sort14.png">Ordenar por Tipo</span></a> </div> <div class="col-lg-2"> <a href="?order=idade&filtro=<?php echo $filtro; ?>" class="btn btn-default"><span class="orderIdade"><img src="img/sort14.png">Ordenar por Idade</span></a> </div> <div class="col-lg-2"> <a href="?order=cidade&filtro=<?php echo $filtro; ?>" class="btn btn-default"><span class="orderCidade"><img src="img/sort14.png">Ordenar por Cidade</span></a> </div> <div class="col-lg-2"> <a href="?order=estado&filtro=<?php echo $filtro; ?>" class="btn btn-default"><span class="orderEstado"><img src="img/sort14.png">Ordenar por Estado</span></a> </div> <div class="col-lg-1"> <a class="icon-search2 btn btn-default pesquisar"></a> </div> <div class="col-lg-1"> <a href="visualiza.php" class="btn btn-default">Todos</a> </div> <div class="clearfix"></div> <div class="col-lg-12 hidden searchbar"> <div class="centro"> <form action="?" method="get" class="form-horizontal" role="form"> <div class="col-lg-8 center-block"> <input type="text" id="search" name="filtro" class="search form-control" placeholder="Buscar..." value="<?php echo $filtro ?>"/> </div> <div class="col-lg-4"> <input type="submit" class="btn-pesquisar btn btn-default" value="Pesquisar"/> </div> <div class="clearfix"></div> </form> </div> </div> </div> <div class="clearfix"></div> <div class="info-order"> <p>Ordenando os resultados por <label><?php echo $order; ?></label></p> </div> <?php require ('conecta.php'); //verifica a página atual caso seja informada na URL, senão atribui como 1ª página $pagina_atual = (isset($_GET['pagina']))? $_GET['pagina'] : 1; //seleciona todos os itens da tabela $cmd = "SELECT id, nome, celular, foto, email FROM cadastro"; $cadastros = mysql_query($cmd); //conta o total de itens $total = mysql_num_rows($cadastros); //seta a quantidade de itens por página, neste caso, 10 itens $registros = 15; //calcula o número de páginas arredondando o resultado para cima $paginas = ceil($total/$registros); //variavel para calcular o início da visualização com base na página atual $inicio = ($registros*$pagina_atual)-$registros; //seleciona os itens por página $cmd = "SELECT id, nome, celular, foto, email, tipo, idade, cidade, estado FROM cadastro WHERE nome LIKE '$filtro%' OR tipo like '$filtro%' or cidade like '$filtro%' ORDER BY $order ASC LIMIT $inicio,$registros"; $cadastros = mysql_query($cmd); $total = mysql_num_rows($cadastros); //exibe os produtos selecionados while ($row = mysql_fetch_array($cadastros)) { $id = $row['id']; $nome = $row['nome']; $foto = $row['foto']; $celular = $row['celular']; $email = $row['email']; $tipo = $row['tipo']; $idade = $row['idade']; $cidade = $row['cidade']; $estado = $row['estado']; //BLOCO CONTENDO UM PERFIL echo "<div class='vitrine col-xs-12'> <div class='foto col-xs-3'> <img alt='foto do perfil' title='foto perfil $nome' src='$foto' class='img-thumbnail'/> </div> <div class='col-xs-1'></div> <div class='wrapp'> <div class='infos col-xs-5'> <div class='col-sm-12'> <label class='nome'> $nome</label> </div> <div class='col-sm-12'> <label>E-mail:</label> <span> $email</span> </div> <div class='col-sm-12'> <label>Celular:</label> <span>$celular</span> </div> <div class='hidden'> <input type='text' name='id' value='$id'> </div> <br/> <div class='col-sm-12'> <label>Idade:</label> <span class=''>$idade</span> </div> <div class='col-sm-12'> <label>Cidade: </label> <span class=''>$cidade - $estado</span> </div> <div class='col-sm-12'> <label>Classificação:</label> <span class='tipo'>$tipo</span> </div> </div> </div> <div class='col-sm-3 centraliza'> <a class='btn btn-lg button' href='perfil.php?id=$id'><span class='icon-search'></span> Ver Perfil </a> </div> </div> <div class='clearfix'></div>"; } //Exibe a paginação echo "<div class='paginacao col-xs-12 row'>"; echo"<div class='centro'>"; //Primeira página e Anterior if ($pagina_atual == 1){ echo"<a class='btn btn-default ativo disabled'>Primeira</a>"; echo"<a class='btn btn-default ativo disabled'>Anterior</a>"; }else{ echo"<a href='?pagina=1&filtro=$filtro&order=$order' class='btn btn-default'>Primeira</a>"; echo"<a href='?pagina=".($pagina_atual-1)."&filtro=$filtro&order=$order' class='btn btn-default'>Anterior</a>"; } if($pagina_atual>=5){ echo" . . . "; } // 3 Páginas antes foreach(array_reverse(range($pagina_atual-1, $pagina_atual-3)) as $pagina){ if ($pagina > 0){ echo "<a href='?pagina=$pagina&filtro=$filtro&order=$order' class='btn btn-default'>$pagina</a>"; } } // Página Atual echo"<a class='btn btn-default ativo'>$pagina_atual</a>"; //3 Páginas depois da Página atual foreach( range($pagina_atual+1, $pagina_atual+3) as $pagina){ if ($pagina < ($paginas +1)){ echo"<a href='?pagina=$pagina&filtro=$filtro&order=$order' class='btn btn-default'>$pagina</a>"; } } $limitePaginas = $paginas-4; if($pagina_atual<=$limitePaginas){ echo" . . . "; } //'Próxima Página' e 'Ultima Página' if ($pagina_atual == $paginas){ echo"<a class='btn btn-default ativo disabled'>Próxima</a>"; echo"<a class='btn btn-default ativo disabled'>Última</a>"; }else{ echo"<a href='?pagina=".($pagina_atual+1)."&filtro=$filtro&order=$order' class='btn btn-default'>Próxima</a>"; echo"<a href='?pagina=".($paginas)."&filtro=$filtro&order=$order' class='btn btn-default'>Última</a>"; } echo"</div>"; echo "</div>"; ?> </div> <!-- RODAPÉ --> <?php require('footer.php'); ?> <!-- /RODAPÉ --> </div> </body> </html>