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>";
?>
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>
Pergunta
wilterson
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
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..
Passando via get a 'order' para a mesma página..
no inicio contem:
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:
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.