Ir para conteúdo

Arquivado

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

rafaeloliveira83

Erro paginação com URL Amigavel .htaccess

Recommended Posts

A paginação está funcionando perfeitamente cujo codigo é:

 

<?php $letra = $_GET["Letra"]; ?>

 

 

<?php
//Conexão com o banco:
include "conecta.php"; // Conecta ao banco de dados

// Informações da query.
$campos_query = "*";
$final_query = 'FROM produtos WHERE Nome LIKE "' . $letra .'%" ORDER BY `produtos`. `Nome` ASC';

// Declaração da pagina inicial
$pagina = $_GET["p"];
if($pagina == "") {
$pagina = "1";
}

// Maximo de registros por pagina
$maximo = 50;

// Calculando o registro inicial
$inicio = $pagina - 1;
$inicio = $maximo * $inicio;

// Conta os resultados no total da minha query
$strCount = "SELECT COUNT(*) AS 'num_registros' $final_query";
$query = mysql_query($strCount);
$row = mysql_fetch_array($query);
$total = $row["num_registros"];

if($total<=0) {
echo "<center>Nenhum produto encontrado.</center>";
} else {
$strQuery = "SELECT $campos_query $final_query LIMIT $inicio,$maximo";
$query = mysql_query($strQuery);


while($row = mysql_fetch_array($query)) {

echo '<ul class="alinha">';
// Contador
$i = ++$cont;
?>

<li><? echo $i . '. ' ;?><a href="produto/<? echo $row['Nome']; ?>"><? echo $row['Nome']; ?></a></li>

<?

echo '</ul>';

}
echo "<br /><br />";

echo "<div id='paginacao'>";
echo "<br />";
// Calculando pagina anterior
$menos = $pagina - 1;

// Calculando pagina posterior
$mais = $pagina + 1;

$pgs = ceil($total / $maximo);
if($pgs > 1 ) {
// Mostragem de pagina
if($menos > 0) {
echo "<a href=\"?p=$menos\" class='menu'>«« Anterior</a>  <span style='color:black; font-weight:normal'>|</span>    ";
}
// Listando as paginas
for($i=1;$i <= $pgs;$i++) {
if($i != $pagina) {
echo " <a class='menu' href=\"?p=".($i)."\">$i</a> ";
} else {
echo " <strong class='pg'>" .$i. "</strong>";
}
}
if($mais <= $pgs) {
echo "    <span style='color:black; font-weight:normal'>|</span>  <a href=\"?p=$mais\" class='menu'>Próxima »»</a>";
}
}

echo "</div>";
}
// Liberar o conjunto de resultados
mysql_free_result($query);

// Fechar a conexao
mysql_close($link);
?> 

 

 

Porem criei um .htacess para ele passar a query string para url amigavel:

 

RewriteEngine On

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

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

 

Esta paginação ao clicar na página 2 por exemplo exibe ?p=2 e se voltar para a primeira ?p=1

 

Porem por causa do .htaccess ele não muda de paginação.

 

Coloquei da seguinte forma RewriteRule ^(.*)$ index.php?Letra=$1&p=2 e ele pega somente a página 2.

 

Como eu posso fazer com que esse .htaccess pegue todas as páginas desde a 1 até n paginas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, Rafael. Essa é, com certeza, a dificuldade de muitos. Bom, o que você pode fazer é o seguinte:

 

RewriteRule ^(.*)/pagina/([0-9]*)$ index.php?Letra=$1&p=$2 [NC]

 

Espero te ajudar.

Abraços! ;)

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.