Ir para conteúdo

Arquivado

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

iniciante.php

Paginação do PHP com Bootstrap

Recommended Posts

Pessoal, já baixei o bootstrap e apliquei no meu código PHP porém estou com uma dificuldade para aplicar CLASS na paginação.

 

 

PHP:

echo "<a href='paginacao.php?page=$i'> $i </a> "

 

CLASS (bootstrap)

  1. <div class="pagination pagination-centered">
  2. ...
  3. </div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu faço isso aqui

<?php
	if (!isset($_GET['pg'])) {
		$pg = 1;
	} else {
		$pg = $_GET['pg'];
	}
	
	$total_reg = "20";
	$inicio = $pg -1; 
	$inicio = $inicio * $total_reg;
	
	$sql_todos = "SELECT * FROM tabela ORDER BY MARCA ASC";
	$sql 	   = "SELECT * FROM tabela ORDER BY MARCA ASC LIMIT $inicio, $total_reg";
	
	$rs_todos = $pdo->query($sql_todos)->fetchAll();
	$total_registros = count($rs_todos); // verifica o número total de registros
	$total_paginas = ceil($total_registros / $total_reg); // verifica o número total de páginas
	
	$rs = $pdo->query($sql)->fetchAll();
	
	$anterior = $pg -1; 
	$proximo = $pg +1;
	
	require("paginacao.php");
?>

paginacao.php

<?php
	if ($total_paginas > 1) {
		echo "<nav>";
		echo "	<ul class='pagination pagination-sm'>";
		
		if ($anterior > 0) {
			echo "<li>";
			echo "	<a href='?pg=".$anterior."' aria-label='Previous'>";
			echo "		<span aria-hidden='true'>«</span>";
			echo "	</a>";
			echo "</li>";
		} else {
			echo "<li class='disabled'>";
			echo "	<span aria-hidden='true'>«</span>";
			echo "</li>";
		}
		
		
		for ($i=1;$i<=$total_paginas;$i++) {
			if ($i < ($pg-4) AND $i == 1) {
				echo "<li><a href='?pg=".$i."'>".$i."</a></li>";
				echo "<li><a>...</a></li>";
			}
			
			if ($i >= ($pg-4) AND $i <= ($pg+4)) {
				if ($i == $pg) {
					echo "<li class='active'><a href='?pg=".$i."'>".$i."</a></li>";
				} else {
					echo "<li><a href='?pg=".$i."'>".$i."</a></li>";
				}
			}
			
			if ($i > ($pg+4) AND $i == $total_paginas) {
				echo "<li><a>...</a></li>";
				echo "<li><a href='?pg=".$i."'>".$i."</a></li>";
			}
		}
		
		if($pg < $total_paginas) {
			echo "<li>";
			echo "	<a href='?pg=".$proximo."' aria-label='Next'>";
			echo "		<span aria-hidden='true'>»</span>";
			echo "	</a>";
			echo "</li>";
		} else {
			echo "<li class='disabled'>";
			echo "	<span aria-hidden='true'>»</span>";
			echo "</li>";
		}
		
		echo "  </ul>";
		echo "</nav>";
	}
?>

Na paginacao.php akeles $pg-4 e $pg+4 servem para ele não mostrar todos os números quando for muitas páginas.. ele limita em mostrar apenas 4 antes e 4 depois..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu faço isso aqui

<?php
	if (!isset($_GET['pg'])) {
		$pg = 1;
	} else {
		$pg = $_GET['pg'];
	}
	
	$total_reg = "20";
	$inicio = $pg -1; 
	$inicio = $inicio * $total_reg;
	
	$sql_todos = "SELECT * FROM tabela ORDER BY MARCA ASC";
	$sql 	   = "SELECT * FROM tabela ORDER BY MARCA ASC LIMIT $inicio, $total_reg";
	
	$rs_todos = $pdo->query($sql_todos)->fetchAll();
	$total_registros = count($rs_todos); // verifica o número total de registros
	$total_paginas = ceil($total_registros / $total_reg); // verifica o número total de páginas
	
	$rs = $pdo->query($sql)->fetchAll();
	
	$anterior = $pg -1; 
	$proximo = $pg +1;
	
	require("paginacao.php");
?>

paginacao.php

<?php
	if ($total_paginas > 1) {
		echo "<nav>";
		echo "	<ul class='pagination pagination-sm'>";
		
		if ($anterior > 0) {
			echo "<li>";
			echo "	<a href='?pg=".$anterior."' aria-label='Previous'>";
			echo "		<span aria-hidden='true'>«</span>";
			echo "	</a>";
			echo "</li>";
		} else {
			echo "<li class='disabled'>";
			echo "	<span aria-hidden='true'>«</span>";
			echo "</li>";
		}
		
		
		for ($i=1;$i<=$total_paginas;$i++) {
			if ($i < ($pg-4) AND $i == 1) {
				echo "<li><a href='?pg=".$i."'>".$i."</a></li>";
				echo "<li><a>...</a></li>";
			}
			
			if ($i >= ($pg-4) AND $i <= ($pg+4)) {
				if ($i == $pg) {
					echo "<li class='active'><a href='?pg=".$i."'>".$i."</a></li>";
				} else {
					echo "<li><a href='?pg=".$i."'>".$i."</a></li>";
				}
			}
			
			if ($i > ($pg+4) AND $i == $total_paginas) {
				echo "<li><a>...</a></li>";
				echo "<li><a href='?pg=".$i."'>".$i."</a></li>";
			}
		}
		
		if($pg < $total_paginas) {
			echo "<li>";
			echo "	<a href='?pg=".$proximo."' aria-label='Next'>";
			echo "		<span aria-hidden='true'>»</span>";
			echo "	</a>";
			echo "</li>";
		} else {
			echo "<li class='disabled'>";
			echo "	<span aria-hidden='true'>»</span>";
			echo "</li>";
		}
		
		echo "  </ul>";
		echo "</nav>";
	}
?>

Na paginacao.php akeles $pg-4 e $pg+4 servem para ele não mostrar todos os números quando for muitas páginas.. ele limita em mostrar apenas 4 antes e 4 depois..

Obrigado!!

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.