Ir para conteúdo

POWERED BY:

Arquivado

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

Vania61

Paginação com erro

Recommended Posts

Boa tarde a todos.

 

É o seguinte, meu site começou a dá erro na paginação. Clico para passar de página ele mostra resultados dá primeira sendo que o link está em outra página. O meu servidor mudou e observei agora.

Teria alguma pessoa boa para resolver esse problema?

O codigo é esse abaixo. Peço que alguem faça as mudanças necessarias , por favor.

 

              <? if ($pagina > 0) {

     $menos = $pagina - 1;
	
     $url = strtolower($cat)."-".$menos.".html";

     print "<a href=\"$url\">« Anterior</a>";

} else {

     print "";

} ?>
                  
              <?

           for($i = 0; $i < $paginas; $i++) {

     $linksp = $i + 1;

     if ($pagina == $i) {

             print "$linksp";

     } else {

             $url = strtolower($cat)."-".$i.".html";

             print "  <a href=\"$url\">$linksp</a> ";

     }

}

          ?>
                  
              <?

           if($pagina < ($paginas - 1)) {

     $mais = $pagina + 1;

     $url = strtolower($cat)."-".$mais.".html";

     print "<a href=\"$url\">Próxima »</a>";

} else {

     print "";

}

          ?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Vania61 tudo bem?

 

 

A primeira dica que te dou é não usar short tags, como você mesmo viu o servidor pode trocar as configurações a qualquer momento e você pode ficar na mão, tente trocar todos os seus <? ?> por <?php ?>

 

Você pode dar um var_dump nas seguintes variáveis para ver o que tem nelas?

 

$pagina

$paginas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola toli.

 

Entendo muito pouco php. mas é isso que você queira?

 

$paginas = ceil($total / $lpp); // Retorna o total de paginas
$lpp = 12; // Especifique quantos resultados você quer por página
$inicio = $pagina * $lpp; // Retorna qual será a primeira linha a ser mostrada no MySQL

 

Outra coisa, tem como voce deixar esse codigo ja funcionando? Estou perdida, rs... mas obrigada pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não era isto, ....

 

Faz assim, você pode postar o código inteiro? Assim da para ver como ele funciona ai fica mais fácil ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tudo bem Toli, obrigada.

 

Tudo que era codigo PHP eu peguei da pagina categoria. veja ai.

São 3 partes. "inicio", "meio" e a "paginação".

 

 

	<?	switch($_GET[cat]) {
			case "Blusas":		$titulo = "Blusas";	break;
			case "Cintos":	        $titulo = "Cintos";	break;
		}
	?>





<? // include "config.php";

    function convdata($dataform, $sep){

  $datatrans = explode ("-", $dataform);

  return "$datatrans[2]$sep$datatrans[1]$sep$datatrans[0]";

}

$cat = $_GET['cat'];

$sql = mysql_query("SELECT * FROM roupas WHERE roupas_categoria_nome = '$cat'") ;

$lpp = 12; // Especifique quantos resultados vocj quer por pagina

$total = mysql_num_rows($sql); // Esta funcao ira retornar o total de linhas na tabela

$paginas = ceil($total / $lpp); // Retorna o total de paginas

if(!isset($pagina)) { $pagina = 0;} // Especifica uma valor para variavel pagina caso a mesma nco esteja setada

$inicio = $pagina * $lpp; // Retorna qual sera a primeira linha a ser mostrada no MySQL

$sql = mysql_query("SELECT * FROM roupas WHERE roupas_categoria_nome='$cat' ORDER BY roupas_nome asc LIMIT $inicio, $lpp");

    

while ($x = mysql_fetch_array($sql)) { $xdata= convdata($x[roupas_data],"/");

?>



<a href="<?php echo urlformat($x["roupas_categoria_nome"])."/".urlformat($x["roupas_nome"])."-".$x["roupas_id"].".html"; ?>"><img src="http://www.site.com/imagens/mini_<? echo "$x[roupas_img]"; ?>" border="0" height="100" width="120"></a></td>
                                    </tr>
                                    <tr> 
                                      <td class="fundotit" style="border-bottom: #009900 dashed 1px"><a href="<?php echo urlformat($x["roupas_categoria_nome"])."/".urlformat($x["roupas_nome"])."-".$x["roupas_id"].".html"; ?>"><? echo "$x[roupas_nome]"; ?></a></td>
                                    </tr>
                                    <tr> 
                                      <td class="fundovisto"><b>Visto:</b> <? echo "$x[roupas_views]"; ?></td>




<? } ?>



<? if ($pagina > 0) {

     $menos = $pagina - 1;
	
     $url = strtolower($cat)."-".$menos.".html";

     print "<a href=\"$url\">« Anterior</a>";

} else {

     print "";

} ?>



<?

           for($i = 0; $i < $paginas; $i++) {

     $linksp = $i + 1;

     if ($pagina == $i) {

             print "$linksp";

     } else {

             $url = strtolower($cat)."-".$i.".html";

             print "  <a href=\"$url\">$linksp</a> ";

     }

}

          ?>



<?

           if($pagina < ($paginas - 1)) {

     $mais = $pagina + 1;

     $url = strtolower($cat)."-".$mais.".html";

     print "<a href=\"$url\">Próxima »</a>";

} else {

     print "";

}

          ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vania61,

 

Você consegue deixar assim logo em baixo de include 'config.php'?

 



 

<? // include "config.php";
ini_set('display_errors',1); 
ini_set('display_startup_erros',1); 
ini_set('short_open_tag',1);
error_reporting(E_ALL);

 

Veja se o sistema mostra algum erro.



Outra pergunta, por que este include está comentando?



Vania61, você pode copiar também, o codigo html gerado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Toli,

apareceu muitos erros com esse codigo.

 

Tive observando que quando habilito no sistema o "php.ini" com o "register_globals = On" , a paginação funciona mas outra parte do site dá erro. teria como então habiltar o "register_globals = On" apenas para uma pagina especifica?

Compartilhar este post


Link para o post
Compartilhar em outros sites

No manual do php temos a seguinte nota

Aviso
Esta funcionalidade tornou-se OBSOLETA desde o PHP 5.3.0. Confiar nesta funcionalidade é altamente não recomendado.

http://php.net/manual/pt_BR/security.globals.php

Pode ser que a variável $pagina seja setada em algum lugar fora destes scripts que você me passou, por isto que ela funciona com a opção configurada para on. Pelo menos foi isto que eu vi, pois em nenhum momento é passado um valor direto para esta variável, a não ser quando se faz a verificação se ela foi setada.

Vania61, como é a url desta pagina?

Tente pegar o valor dela e setar dentro do script algo como isto abaixo, vai depender de como está configurado sua pagina (url amigável, ou os parâmetros passados por ela).

De um var_dump no REQUESTe veja o que aparece, para evitar duvidas, de também em GET e POST.





<? // include "config.php"; 

var_dump($_REQUEST);
var_dump($_POST);
var_dump($_GET);

$pagina = $_GET['pagina'];

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.