Olá galera, eu tenho o site da minha agência de modelos, e na página de casting já está tudo funcionando perfeitamente, mas tem uma pequeno problema que eu ainda não consegui resolver e conto com a ajuda de vocês.
O casting é separados por loiras, morenas, ruivas, etc e todos estão cadastradas numa única tabela que eu chamo de casting geral.
Cada página exemplo Loiras, Morenas, etc tem o seu código para buscar na tabela apenas o perfil correspondente, mas na paginação aparecem as vezes 45 resultados, na pagina 2 aparecem 30 resultados, na página seguinte 10 resultados, e isso ocorre porque o LIMIT está varrendo pelo ID na tabela.
Segue o link para que possam ver a página Online e logo abaixo o código fonte da página.
www.fweventos.com.br/?p=loiras
--------------------------------------------------------------------------------------------------
<?php
$cat = 'femloira';
$desc = 'loiras';
$limite = 45; // Define o limite de registros a serem exibidos
?>
<?php
// Turn off all error reporting
error_reporting(0);
?>
<?php
$selecao = 'castinggeral';
// Seta as configurações para Paginação
$pagina = preg_replace('/[^0-9]/', '', $_GET["pag"]);
$pagina = filter_var($pagina, FILTER_VALIDATE_INT);
if(!$pagina)
{
$pagina = 1;
}
$inicio = ($pagina * $limite) - $limite;
// Seta as configurações para Paginação
//CONECTA AO MYSQL
$conn = mysqli_connect("host", "user", "senha", "database");
if (!$sql = mysqli_query($conn, "SELECT id, status, fotoperfil, nome, altura, busto, cintura, quadril, categoria, foto1_tamanho, foto2_tamanho, foto3_tamanho, foto4_tamanho, foto5_tamanho, foto6_tamanho, foto7_tamanho, foto8_tamanho, foto9_tamanho FROM $selecao WHERE categoria = '$cat' LIMIT $inicio, $limite")){
echo '<br><br><h2>Não foi possível se conectar ao banco de dados.<br>
Verifique se o endereço digitado está correto.</h2>';
}
$consulta = mysqli_query($conn, "SELECT id FROM $selecao WHERE categoria = '$cat'");
$total_registros = mysqli_num_rows($consulta);
$total_paginas = Ceil($total_registros / $limite);
?>
<br><br>
<body class="Eventos"><h4>Clique nas imagens para amplia-las</h4><br>
<a name="top"></a>
<div class="descricao">
<?php echo ucwords($desc); ?>
</div>
<div id="thumbs">
<?php
$group = 0;
while ($row = mysqli_fetch_row($sql)) {
$id = $row[0];
$status = $row[1];
$fotoperfil = $row[2];
$nome = $row[3];
Abaixo disso fica o código que exibe as imagens, abaixo segue o código da páginação.
<?php
if($pagina > 1){
echo "<a href=\"?p=$desc&pag=1\">Primeira página</a>";
}
for($i=1; $i <= $total_paginas; $i++)
{
if($pagina == $i)
{
echo " ".$i." ";
}
else
{
echo "<a href=\"?p=$desc&pag=$i\">$i</a>";
}
}
if($pagina <> $total_paginas){
echo "<a href=\"?p=$desc&pag=$total_paginas\">Última página</a>";
}
?>
Alguém consegue me dizer como resolver o problema de algumas páginas exibirem diferentes números de resultados ao invés dos 45 que foi setado?