Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17586
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Ordenar dados por data ( com paginação )

06-06-2007 08:12

Esse script permite retornar dados de uma consulta sql por data.

Ex.:
id data
2 30/01/2007
3 04/04/2007
4 07/03/2007
5 07/03/2007

Note que 4 e 5 tem a mesma data.

O objetivo é retornar os dados da seguinte forma:
04/04/2007
3
07/03/2007
5
4
30/01/2007
2

Esse tipo de organização é bom para sistema de notícias. vejamos o código.

Obs.: Para uma versão sem paginação, acesse:
viewtopic.php?t=776

<table border=0> <tr> <td>campo</td> </tr> <?php $dbhost="localhost"; /* servidor */ $dbuser=""; /* usuário do banco de dados */ $dbpasswd=""; /* senha do banco de dados */ $dbname=""; /* nome do banco de dados */ /* abaixo abrimos a conexão com os dados acima */ $conexao = @mysql_connect($dbhost, $dbuser, $dbpasswd) or die ("não foi possível a conexão, verifique os dados."); $db = @mysql_select_db($dbname) or die ("não foi possível o acesso ao banco de dados $dbname."); /* nome da tabela onde está os nosso valores */ $tabela="tabelatal"; /* pegamos todos os dados da tabela ordenando em ordem crescente por nome */ $sql=mysql_query("SELECT DISTINCT(data) FROM $tabela ORDER BY data ASC"); $total=mysql_num_rows($sql); /* declaração da página inicial */ if($_GET['pagina']=="") { $pagina="1"; } else { $pagina=$_GET['pagina']; } /* quantos registros por página */ $maximo="1"; /* calcula o registro inicial */ $inicio=$pagina-1; $inicio=$maximo*$inicio; /* base do script */ $query=mysql_query("SELECT DISTINCT(data) FROM $tabela ORDER BY data ASC LIMIT $inicio,$maximo"); /* início da mostragem de dados */ while($dados=mysql_fetch_array($query)) { $data = $dados['data']; ?> <?php echo "<tr>"; echo "<td>$data</td>"; echo "</tr>"; / * base dos dados de acordo com a data */ $selec2 = "SELECT * FROM $tabela WHERE data='$data' ORDER BY id DESC"; $exec2 = mysql_query($selec2, $conexao) or die(mysql_error()); while($dados2=mysql_fetch_array($exec2)) { $id = $dados2['id']; echo "<tr><td>$id</td></tr>"; } ?> <?php } ?> </table> <?php /* calcula a página anterior */ $menos=$pagina-1; /* calcula a página posterior */ $mais=$pagina+1; /* calculo da mostragem das páginas */ $p_ini=$mais-1; $p_ini=$maximo*$p_ini; /* início da mostragem das páginas */ $p_query=mysql_query("SELECT DISTINCT(data) FROM $tabela ORDER BY data ASC LIMIT $p_ini,$maximo"); $p_total=mysql_num_rows($p_query); /* mostragem do página anterior e posterior */ if($menos>0) { echo "<a href=\"?pagina=$menos\">anterior(es)</a> "; } if($p_total>0) { echo "<a href=\"?pagina=$mais\">proxima(s)</a>"; } ?> <?php /* resumo do armazenado no bd */ print <<< HERE <center> Existe $total dados nesse bd. <br> Estamos mostrando $maximo por página. </center> HERE; ?> <?php mysql_close($conexao); ?>

0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado