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
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.