Jump to content
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.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.