Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fsales_123

Paginação com tabela

Recommended Posts

como faço paginação com a tabela assim.... segue o codigo abaixo:

 <?php 
 
 	if(@$_POST){
			$sql = mysql_query("SELECT * FROM anuncios WHERE descricao LIKE '%".$_POST["query"]."%' ORDER BY ID DESC");
	}else{
 
		if(empty($_GET["categoria"])){
			$sql = mysql_query("SELECT * FROM anuncios WHERE status = 'Ativo' AND ID ORDER BY RAND()");
		}else{
			$sql = mysql_query("SELECT * FROM anuncios WHERE categoria = '".strip_tags($_GET["categoria"])."' AND status = 'Ativo' ORDER BY nome ASC");
		}
	}
	
			if(mysql_num_rows($sql) == false){
				echo '<div align="center"><br /><strong>Nenhum anúncio encontrado.</strong><br /></div>';
				
			}else{
				
				while($ln = mysql_fetch_object($sql)){
					
	?>
      </p>
      <table width="100%" height="50" border="0">
        <tr>
          <td width="2%" height="110" align="center" valign="middle"><img src="uploads/<?php echo $ln->thumb; ?>" width="140" height="90" /></td>
          <td width="98%" align="left" valign="top">
          <div align="left" style="margin:5px; color:#333; font-size:11px;">Nome da Empresa: <strong><?php echo $ln->empresa; ?></strong></div>
            <div align="left" style="margin:5px; color:#333; font-size:11px;"><?php echo truncate(strip_tags($ln->descricao), 50); ?>...</div>
            <div align="left" style="margin:5px; color:#333; font-size:11px;">Telefone: <strong><?php echo $ln->telefone; ?></strong></div>
            <div align="left" style="margin:5px; color:#333; font-size:11px;">Enviado por: <strong><?php echo $ln->nome; ?></strong></div>
            <div align="left" style="margin-left:5px; margin-top:10px;"><a href="javascript: ver_anuncio(<?php echo $ln->ID; ?>);" class=" anuncio" style="text-decoration:none;">Ver anúncio</a></div>
          </td>
        </tr>
      </table>
      <?php
			}
			?>
      <?php
				}
				?>
    </td>

eu sei uma aqui mais não sei colocar

 

<?php $conn = mysql_connect("host","usuario","senha"); $db = mysql_select_db("bancodedados"); ?>

<?php $busca = "SELECT * FROM tabelax"; ?>

<?php $total_reg = "10"; // número de registros por página ?>

<?php $pagina=$_GET['pagina']; if (!$pagina) { $pc = "1"; } else { $pc = $pagina; } ?>

<?php $inicio = $pc - 1; $inicio = $inicio * $total_reg; ?>

<?php $limite = mysql_query("$busca LIMIT $inicio,$total_reg"); $todos = mysql_query("$busca");

$tr = mysql_num_rows($todos); // verifica o número total de registros $tp = $tr / $total_reg; // verifica o número total de páginas

// vamos criar a visualização while ($dados = mysql_fetch_array($limite)) { $nome = $dados["nome"]; echo "Nome: $nome<br>"; }

// agora vamos criar os botões "Anterior e próximo" $anterior = $pc -1; $proximo = $pc +1; if ($pc>1) { echo " <a href='?pagina=$anterior'><- Anterior</a> "; } echo "|"; if ($pc<$tp) { echo " <a href='?pagina=$proximo'>Próxima -></a>"; } ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

A paginação nada mais é do que uma equação aritmética que vai guardar o total de registros do SQL que você quer mostrar e depois vai fazer uma nova busca no SQL A PARTIR do registro posterior ao último registro exibido.

 

Veja bem. Se você quer exibir somente 10 registros da sua tabela, utilize o LIMIT do MySQL para isso:

mysql_query("SELECT * FROM tabela LIMIT 10");

Desta forma, apenas os 10 primeiros registros de tabela serão exibidos. Mas para fazer uma paginação, você precisa ainda guardar qual foi o último registro exibido para poder buscar os 10 posteriores a ele na sua tabela depois. E mais importante do que isso ainda, você precisa saber o TOTAL de registros na sua tabela, para definir o início e o fim da pesquisa. Veja abaixo o exemplo completo e tente entender:

$pagina = $_GET['pag'];
if(!$pagina){
  $pagina = 1;
}
// Defina aqui a quantidade de resultados a serem exibidos em cada página
$limite = 12;	

// FAÇA UMA BUSCA SIMPLES NA SUA TABELA
$cont = mysql_query("SELECT * FROM tabela");

$total_registros = mysql_num_rows($cont); // Aqui você conta o total de registros da tabela
$total_paginas = ceil($total_registros / $limite); // Aqui divide o total de registros pelo limite de registros a serem exibidos para obter o total de páginas a serem exibidas

// Abaixo, um loop para exibir o link para as próximas páginas
for($i=1; $i <= $total_paginas; $i++)
{
    echo "<a href='home.php?pag=$i'>".$i."</a> ";
}

echo "<hr width='100%'>"."Você está atualmente na página: ".$pagina."<hr width='100%'>";

//Abaixo você vai fazer a equação que deverá 
$inicio = ($pagina * $limite) - $limite;

// Agora simplesmente faça a busca no DB dessa forma:
$sql = mysq_query("SELECT * FROM tabela LIMIT $inicio,$limite");

Pronto, a paginação está feita.


EDIT:

//Abaixo você vai fazer a equação que deverá **definir a partir de qual item o sql vai começar a exibir**
$inicio = ($pagina * $limite) - $limite;


EDIT:

//Abaixo você vai fazer a equação que deverá **definir a partir de qual item o sql vai começar a exibir**
$inicio = ($pagina * $limite) - $limite;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Simples: coloque o código abaixo no início do código que você mostrou. Assim:

$pagina = $_GET['pag'];
if(!$pagina){
  $pagina = 1;
}
// Defina aqui a quantidade de resultados a serem exibidos em cada página
$limite = 12;	

// FAÇA UMA BUSCA SIMPLES NA SUA TABELA
$cont = mysql_query("SELECT * FROM tabela");

$total_registros = mysql_num_rows($cont); // Aqui você conta o total de registros da tabela
$total_paginas = ceil($total_registros / $limite); // Aqui divide o total de registros pelo limite de registros a serem exibidos para obter o total de páginas a serem exibidas

// Abaixo, um loop para exibir o link para as próximas páginas
for($i=1; $i <= $total_paginas; $i++)
{
    echo "<a href='home.php?pag=$i'>".$i."</a> ";
}

echo "<hr width='100%'>"."Você está atualmente na página: ".$pagina."<hr width='100%'>";

//Abaixo você vai fazer a equação que deverá 
$inicio = ($pagina * $limite) - $limite;


// AQUI VAI O SEU CÓDIGO
if(@$_POST){
			$sql = mysql_query("SELECT * FROM anuncios WHERE descricao LIKE '%".$_POST["query"]."%' ORDER BY ID DESC LIMIT $inicio,$limite");
	}else{
 
		if(empty($_GET["categoria"])){
			$sql = mysql_query("SELECT * FROM anuncios WHERE status = 'Ativo' AND ID ORDER BY RAND() LIMIT $inicio,$limite");
		}else{
			$sql = mysql_query("SELECT * FROM anuncios WHERE categoria = '".strip_tags($_GET["categoria"])."' AND status = 'Ativo' ORDER BY nome ASC LIMIT $inicio,$limite");
		}
	}
	
			if(mysql_num_rows($sql) == false){
				echo '<div align="center"><br /><strong>Nenhum anúncio encontrado.</strong><br /></div>';
				
			}else{
				
				while($ln = mysql_fetch_object($sql)){
					
	?>
      </p>
      <table width="100%" height="50" border="0">
        <tr>
          <td width="2%" height="110" align="center" valign="middle"><img src="uploads/<?php echo $ln->thumb; ?>" width="140" height="90" /></td>
          <td width="98%" align="left" valign="top">
          <div align="left" style="margin:5px; color:#333; font-size:11px;">Nome da Empresa: <strong><?php echo $ln->empresa; ?></strong></div>
            <div align="left" style="margin:5px; color:#333; font-size:11px;"><?php echo truncate(strip_tags($ln->descricao), 50); ?>...</div>
            <div align="left" style="margin:5px; color:#333; font-size:11px;">Telefone: <strong><?php echo $ln->telefone; ?></strong></div>
            <div align="left" style="margin:5px; color:#333; font-size:11px;">Enviado por: <strong><?php echo $ln->nome; ?></strong></div>
            <div align="left" style="margin-left:5px; margin-top:10px;"><a href="javascript: ver_anuncio(<?php echo $ln->ID; ?>);" class=" anuncio" style="text-decoration:none;">Ver anúncio</a></div>
          </td>
        </tr>
      </table>
      <?php
			}
			?>
      <?php
				}
				?>
    </td>

Faça um teste agora. Mas, acima de tudo, recomendo que estude mais o SQL e comece desde já a utilizar o MySQLi em vez do MySQL, pois as vantagens são inúmeras. Vá modificando os códigos e vendo quais erros acontecem, essa é a melhor forma de se aprender. É vendo o erro que aprendemos a fazer o certo xD

 

E se tiver dúvidas, o php.net e o mysql.com são os melhores guias que você poderá encontrar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.