Ir para conteúdo

POWERED BY:

Arquivado

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

Felipe Chiarotti

Paginação Por Categoria.

Recommended Posts

Olá Pessoal, criei um sistema de paginação para meu site.

              $busca = "SELECT * from games";

                           $total_reg = 24;


                           if (!isset($explode[1])) 
                           { 
                                   $pc = 1; 
                           }else 
                           { 
                                   $pc = $explode[1];
                           }
                           $inicio = $pc - 1;
                           $inicio = $inicio * $total_reg;

                         $limite = mysql_query("$busca ORDER BY id  DESC LIMIT $inicio,$total_reg");
                         $todos = mysql_query("$busca");
                         
                         $tr = mysql_num_rows($todos);
                         $tp = $tr / $total_reg;
                 ?> 
  

e após isto, para chamar os numeros:

                    <?php for($i = 1; $i < $tp + 1; $i++) {
                    echo '<a href="'.HOME.'/'.$explode[0].'/'.$i.'">'.$i.'</a>';
                    }
                    ?> 

E tenho diversas categorias, por exemplo: "Todos os Jogos", "Xbox 360", "Playstation 3", "PC".

 

Em "Todos os Jogos", eu exibo todos os jogos (avá), assim funcionando corretamente o sistema, mostrando 6 numeros de paginas.

Porém, se eu acesso Xbox 360, ele continua mostrando os 6 numeros, ele não calcula a quantidade de jogos daquela categoria, e sim ao todo.

Eu tentei dar um WHERE category = '$explode[0]' (Explode 0, seria a url no caso xbox-360)

Porém sem sucesso, onde eu poderia modificar o codigo para chegar neste resultado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Onde colocou o WHERE? Mostre como fez

Também verifique o valor de $explode[0]. Talvez esteja sem o valor esperado

 

 

PS: funções mysql_* estão obsoletas desde o PHP 5.5. Prefira usar MySQLi ou PDO. Veja mais aqui: http://www.ultimatephp.com.br/php-por-que-nao-utilizar-funcoes-mysql

Compartilhar este post


Link para o post
Compartilhar em outros sites

O valor do explode[0] está como o esperado pois abaixo possuo uma outra verificação e está funcionando corretamente. Se for pra xbox-360, ele exibe todos os jogos da cat xbox-360, se eu for pra PC, apenas (todos) os de pc. Porém, todos aparecem 6 paginas pra clicar, pois não estou fazendo verificação pra cada um. Poise, é aí que estou perdido, não sei onde adicionar esse WHERE.

 

Eu acho que se adicionar um where explode[0], ATÉ pode funcionar pras categorias. Porém em "todos-jogos" não funcionaria.

 

 

Sobre php 5.5, estou sem tempo, cursando faculdade de ciencia da computação. Logo mais estudo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Supondo que a categoria venha de um GET.

 

$categoria = $_GET['categoria'];
if($categoria != NULL) {
$busta = "SELECT * FROM games WHERE='".$categoria."'";
}else {
$busca = "SELECT * FROM games";
}
Não funciona? '-'

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou com msm problema, estou usando essa paginação, oq devo mudar?

 <?php
$pagina = $_GET['pag'];
if(!$pagina){
  $pagina = 1;
}
// Defina aqui a quantidade de resultados a serem exibidos em cada página
$limite = 15;	

// FAÇA UMA BUSCA SIMPLES NA SUA TABELA
$cont = mysql_query("SELECT * FROM anuncios");

$total_registros = mysql_num_rows($cont); // Aqui você conta o total de registros da tabela
$total_paginas = ceil($total_registros / $limite); // Aqui divide o total de registros pelo limite de registros a serem exibidos para obter o total de páginas a serem exibidas



//Abaixo você vai fazer a equação que deverá 
$inicio = ($pagina * $limite) - $limite;

// AQUI VAI O SEU CÓDIGO
if(@$_POST){
$sql = mysql_query("SELECT * FROM anuncios WHERE descricao LIKE '%".$_POST["query"]."%' ORDER BY ID DESC LIMIT $inicio,$limite");
}else{

if(empty($_GET["categoria"])){
$sql = mysql_query("SELECT * FROM anuncios WHERE status = 'Ativo' AND ID ORDER BY RAND() LIMIT $inicio,$limite");
}else{
$sql = mysql_query("SELECT * FROM anuncios WHERE categoria = '".strip_tags($_GET["categoria"])."' AND status = 'Ativo' ORDER BY nome ASC LIMIT $inicio,$limite");
}
}

if(mysql_num_rows($sql) == false){
echo '<div align="center"><br /><strong>Nenhum anúncio encontrado.</strong><br /></div>';

}else{

while($ln = mysql_fetch_object($sql)){

?>
      </p>
      <table width="100%" height="50" border="0">
        <tr>
          <td width="2%" height="110" align="center" valign="middle"><img src="uploads/<?php echo $ln->thumb; ?>" width="140" height="90" /></td>
          <td width="98%" align="left" valign="top">
          <div align="left" style="margin:5px; color:#333; font-size:11px;">Nome da Empresa: <strong><?php echo $ln->empresa; ?></strong></div>
            <div align="left" style="margin:5px; color:#333; font-size:11px;"><?php echo truncate(strip_tags($ln->descricao), 50); ?>...</div>
            <div align="left" style="margin:5px; color:#333; font-size:11px;">Telefone: <strong><?php echo $ln->telefone; ?></strong></div>
            <div align="left" style="margin:5px; color:#333; font-size:11px;">Enviado por: <strong><?php echo $ln->nome; ?></strong></div>
            <div align="left" style="margin-left:5px; margin-top:10px;"><a href="javascript: ver_anuncio(<?php echo $ln->ID; ?>);" class=" anuncio" style="text-decoration:none;">Ver anúncio</a></div>
          </td>
        </tr>
      </table>
      <?php
}
?>
      <?php
}
?>
                
               <?php // Abaixo, um loop para exibir o link para as próximas páginas
for($i=1; $i <= $total_paginas; $i++)
{
    echo "<a href='index.php?pag=$i'>".$i."</a> ";
}

echo "<hr width='100%'>"."Você está atualmente na página: ".$pagina."<hr width='100%'>";
?>
    </td>

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.