Ir para conteúdo

POWERED BY:

Arquivado

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

WandersonRD

Paginação com url amigável PHP

Recommended Posts

Olá pessoal, sou novo em php e estou com dificuldade em criar um sistema de paginação utilizando url amigável.

 

Queria um sistema parecido com esse:

 

meusite.com.br/categoria/pagina/2

meusite.com.br/categoria/pagina/15

 

Meu .htaccess está assim:

 

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l


RewriteRule ^(.*)$ index.php?pagina=$1

 

Meu index.php:

 

<?php
include_once("includes/header.php");
?>

<?php
 mysql_connect('localhost','root','');
 $db = mysql_select_db('residentdo');
?>

<?php


$url = (isset($_GET['pagina'])) ? $_GET['pagina'] : '';
$explode = explode('/', $url);
$paginas = array('contato','termosdeuso','noticias','programas','jogos','videos');

if (isset($explode[0]) && $explode[0] == ''){
 include_once "home.php";
} elseif ($explode[0] != '' && $explode[1] != '') {
 switch ($explode[0]) {
   case 'noticias':
     include_once "paginas/post_not.php";
     break;
   case 'programas':
     include_once "paginas/post_prog.php";
     break;
   case 'jogos':
     include_once "paginas/post_jog.php";
     break;
   case 'videos':
     include_once "paginas/post_vid.php";
     break;
 }
} elseif($explode[0] != '') {
 if (isset($explode[0]) && in_array($explode[0], $paginas)) {
   include_once "paginas/".$explode[0].".php";
}}

 

E a página que eu quero colocar a paginação está assim:

 

 

<?php
include_once("includes/lateral.php");
?>

<?php
mysql_connect('localhost','root','');
$db = mysql_select_db('residentdo');
?>

<?php
$Url = (isset($_GET['pagina'])) ? $_GET['pagina'] : '';
$separar = explode('/', $Url);

if(isset($separar[3])) {
	$pg = (int)$separar[3];
}
else {
	$pg = 1;
}

$maximo = 4;
$inicio = ($pg * $maximo) - $maximo;
?>

<div id="all">
<div id="corponoticias">
<span id="navbar"><pre><a href="index.php">Início</a> > Notícias</pre></span>
<h2 id="titulonot">Notícias</h2>

<?php
$seleciona = mysql_query("SELECT * FROM noticias ORDER BY id DESC LIMIT $inicio, $maximo");
$conta = mysql_num_rows($seleciona);

if ($conta <=0) {
	echo "Não há nenhum dado no banco";
}else {
	while($ln = mysql_fetch_array($seleciona)) {
		$idPost = $ln['id'];
		$titulo = $ln['titulo'];
		$conteudo = $ln['texto'];
?>


	<div id="postagem">
		<h1 id="titulopost"><a href="?post_not=true&id=<?php echo $idPost; ?>"><?php echo $titulo ?></a></h1>
		<p><?php echo limitar($conteudo, 600) ?>... <a id="vejamais" href="?post_not=true&id=<?php echo $idPost; ?>">Veja Mais</a></p>
	</div>
<?php
	}}
?>

<div class="paginacao">
<?php
	$selSql = mysql_query("SELECT id FROM noticias");
	$totalPosts = mysql_num_rows($selSql);
	$pags = ceil($totalPosts/$maximo);
	$links = 2;

	echo "<a href=\"/noticias/pagina/1\">Primeira Página</a>";

	for ($i = $pg - $links; $i <= $pg - 1; $i++) {
		if($i <= 0){} else {
			echo "<a href=\"/noticias/pagina/$i\">$i</a>";
		}

	}
	echo $pg;

	for($i = $pg + 1; $i <= $pg + $links; $i++){
		if($i > $pags) {}
		else{
			echo "<a href=\"/noticias/pagina/$i\">$i</a>";
		}
	}
	echo "<a href=\"/noticias/pagina/$pags\">Última Página</a>";
?>
</div>
</div>
</div>

 

Preciso terminar esse projeto o mais rápido possível.

Obrigado. :D/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, WandersonRD, aconselho você á utilizar paginação simples (exemplo: meusite.com.br/categoria/pagina&pagina=2).

 

Lógicamente da outra forma ficará mais agradável, só que te poupará esforços. A prática de SEO não se trata em deixar tudo amigável, por isso se fala em 'táticas' de SEO, minha páginas que possuem buscas sempre utilizo paginação simples.

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.