Ir para conteúdo
jmSolutions

Paginação com Url Amigavel

Recommended Posts

Ola devs, seguinte estudando aqui como implementar Paginacao com url amigavel enconstrei algumas dificuldades.

meu htacess esta assim:

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*) index.php?url=$1 [QSA,L]

estou usando a estrutura front-controller onde na index essa configurado assim:

<!DOCTYPE html>
<html>
<head>
	<title>Teste com front Controller</title>
</head>
<body>
	<a href="home">Home</a>
	<a href="sobre">Sobre</a>
	<?php 
		//$url = isset($_GET['url']) ? $_GET['url']: '';
		//$urlE = explode('/',$url);
		//echo '<pre>';
		//var_dump($urlE);
		if(isset($_GET['url'])):
			$url = $_GET['url'];
			$url = rtrim( $url, '/');
			$url = explode('/',$url);
			if(file_exists('pages/'.$url[0].'.php')):
				include 'pages/'.$url[0].'.php';
			//elseif(file_exists('pages/'.$urlE[0].'/'.$urlE[1].'.php')):
				//include 'pages/'.$urlE[0].'/'.$urlE[1].'.php';
			else:
				echo 'nao encontrado';
			endif;
			//print_r($url);
		else:
			include 'pages/home.php';
		endif;

	 ?>
</body>
</html>

e finalmente a pagina que vai conter a paginacao que é home, esta funcionando do modo convecional com o '?' ex http://127.0.0.1/sites/home?p=2 vai me listar todos o resultados normalmente

porem o o que acontece

o meu script do home com a paginação esta assim:

<h1>Ola home</h1>
<?php 
	$con = new PDO("mysql:host=localhost;dbname=blog",'root','');

	$pag = isset($_GET['p']) ? $_GET['p'] : 1;

	$porPagina = 1;
	$inicio = ($pag * $porPagina) - $porPagina;

	$read = $con->prepare("SELECT * FROM posts LIMIT {$inicio},{$porPagina}");
	$read->execute();

	$return = $read->fetchAll();

	
	


	//var_dump($return);
	foreach($return as $retorno):
		echo '<p>'.$retorno['post'].'</p>';
	endforeach;

	$readP = $con->prepare("SELECT * FROM posts");
	$readP->execute();
	$numResult = $readP->fetchAll();

	$paginas = ceil(count($numResult)/ $porPagina);
	for ($i=1; $i <= $paginas ; $i++) { 
	
 ?>

 <ul>
 	<li><a href="./home/p/<?= $i ?>"><?= $i ?></a></li>
 </ul>
 <?php 

 		}
  ?>

aqui

Citar

<li><a href="./home?p=<?= $i ?>"><?= $i ?></a></li> se mudar para <li><a href="./home/p/<?= $i ?>"><?= $i ?></a></li>

acontece de nao ocorrer a paginação, ou quando clicar para fazer a paginação ele somente adiciona ao final home/p/1, isso toda vez que clica.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

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