Ir para conteúdo

POWERED BY:

Arquivado

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

blacktrindade

Paginação com PHP

Recommended Posts

Bom dia pessoal, estou tentando criar uma paginação em uma página que exibe o resultado deu ma consulta.

 

PHP DO TOPO

$pagina = $_GET['pag'];
if(!$pagina)
{
    $pagina = 1;
}

$limite = 5;
$inicio = ($pagina * $limite) - $limite;

$nome = $_POST['nome'];
$nome =  mysql_real_escape_string($nome);
$classificacao = $_POST['classificacao'];
$sistema = $_POST['sistema'];
$modulo = $_POST['modulo'];
$setor = $_POST['setor'];

$pagina = $_GET['pag'];

if(!$pagina)
{
    $pagina = 1;
}

$inicio = ($pagina * $limite) - $limite;

$sql = "SELECT id, nome FROM manual WHERE nome LIKE '%".$nome."%'";
if( $classificacao != '' ) $sql .= " AND classificacao = '$classificacao'";
if( $sistema != '' ) $sql .= " AND sistema = '$sistema'";
if( $modulo != '' )  $sql .= " AND modulo = '$modulo'";
if( $setor != '' )   $sql .= " AND setor = '$setor'";
if(isset($sql)) $sql .= " AND ativo = '1' ORDER BY nome LIMIT $inicio,$limite";
$query = mysql_query($sql) or die (mysql_error());

$sql2 = "SELECT id, nome FROM manual";
$query2 = mysql_query($sql2) or die (mysql_error());
$total_registros = mysql_num_rows($query2);
$total_paginas = ceil($total_registros / $limite);

 

PHP PARA TROCAR DE PÁGINA:

 

for($i=1; $i <= $total_paginas; $i++){
    echo '<a href="consulta_Manual.php?pag='.$i.'"> '.$i.'</a>';
}

 

quando envio a consulta o sql fica assim:

 

SELECT id, nome FROM manual WHERE nome LIKE '%%' AND classificacao = 'Case' AND sistema = 'ERP Solution' AND modulo = 'Banco' AND ativo = '1' ORDER BY nome LIMIT 0,5

 

Dai quando clico por exemplo na página 2 ou até na 1 ele pega e altera a sql para apenas:

 

SELECT id, nome FROM manual WHERE nome LIKE '%%' AND ativo = '1' ORDER BY nome LIMIT 0,5

Ou seja ele ignora os IF($classificacao != '') e pega só a sql mesmo la de cima.

 

Alguém sabe o que pode estar ocorrendo?

 

Grato desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se seu código está escrito com a sintaxe correta e não está funcionando, sinto lhe dizer, mas sua lógica está incorreta.

 

A linguagem não tem autonomia de ignorar nada ahushua

 

Bom cara estou dando echo na sql para verificar como está indo para o banco de dados e está acontecendo o que descrevi no meu tópico, agora o motivo eu não sei...

Compartilhar este post


Link para o post
Compartilhar em outros sites

debug for the win.

 

Já fiz vários e até agora não consegui descobrir, olha se vocês 2 estão com preguiça ou não querem responder, não venha postar no tópico para ganhar + posts não OK?

 

tem gente que quer ajudar e não precisamos de poluição do forum :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já fiz vários e até agora não consegui descobrir, olha se vocês 2 estão com preguiça ou não querem responder, não venha postar no tópico para ganhar + posts não OK?

 

tem gente que quer ajudar e não precisamos de poluição do forum :)

 

Por que tanta raiva?! Estamos só tentando ajudar, não sabíamos que você já tinha feito a depuração e não obteve resultado. Entenda que nem todo mundo tem tempo de ficar verificando os códigos em tópicos, sendo que em muitos casos encontramos a solução apenas batendo o olho. Esse é meu caso, estou no trabalho e não posso verificar seu código no momento. Mesmo assim, já que não encontrei o problema logo de cara, sugeri uma forma com as minhas melhores intenções. Se eu soubesse que nos chamaria de preguiçosos, não teria nem aberto o tópico. Até mesmo porque, você está pedindo a nossa ajuda.

 

Desculpa por "poluir" seu tópico. Em casa eu verificarei seu código com calma.

 

Att masi

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por que tanta raiva?! Estamos só tentando ajudar, não sabíamos que você já tinha feito a depuração e não obteve resultado. Entenda que nem todo mundo tem tempo de ficar verificando os códigos em tópicos, sendo que em muitos casos encontramos a solução apenas batendo o olho. Esse é meu caso, estou no trabalho e não posso verificar seu código no momento. Mesmo assim, já que não encontrei o problema logo de cara, sugeri uma forma com as minhas melhores intenções. Se eu soubesse que nos chamaria de preguiçosos, não teria nem aberto o tópico. Até mesmo porque, você está pedindo a nossa ajuda.

 

Desculpa por "poluir" seu tópico. Em casa eu verificarei seu código com calma.

 

Att masi

 

Minha intenção não foi de chama-los de preguiçosos, más vem duas pessoas no meu tópico me falar para realizar o debug, eu sempre realizo debug da forma que eu consigo, sempre busco no forum e no google e só crio tópicos aqui quando realmente não vejo mais saída, por isso me exaltei um pouco ao dizer aquilo, inclusive peço desculpas e reconheço meu erro e minha má interpretação, más a pessoas aqui no forum sim que querem apenas ganhar posts e se sobressair sobre os outros, obrigado pela ajuda.

 

@topico:

 

quando eu clico na página 2 eu recebo as noticias:

 

Notice: Undefined index: nome in /home/colhabon/public_html/intranet/pg/funcao/consulta_Manual.php on line 22

 

Notice: Undefined index: classificacao in /home/colhabon/public_html/intranet/pg/funcao/consulta_Manual.php on line 24

 

Notice: Undefined index: sistema in /home/colhabon/public_html/intranet/pg/funcao/consulta_Manual.php on line 25

 

Notice: Undefined index: modulo in /home/colhabon/public_html/intranet/pg/funcao/consulta_Manual.php on line 26

 

Notice: Undefined index: setor in /home/colhabon/public_html/intranet/pg/funcao/consulta_Manual.php on line 27

 

Parece que ele vai para outra página pois ele está perdendo a variável global $_POST

Compartilhar este post


Link para o post
Compartilhar em outros sites

No primeiro momento você tem o formulário ($_POST), quando você clica nos links isso não existe mais, logo, o problema está na lógica, pois você sempre terá que passar os dados por algum meio, no começo por $_POST, depois por $_GET.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No primeiro momento você tem o formulário ($_POST), quando você clica nos links isso não existe mais, logo, o problema está na lógica, pois você sempre terá que passar os dados por algum meio, no começo por $_POST, depois por $_GET.

 

Eserra obrigado pela Luz, eu estava aqui com os olhos colados na tela tentando enxergar o que estava errado se era a lógica ou a sintaxe inclusive editei um post ali em cima mostrando as noticias do debug que eu havia feito anteriormente, eu havia feito tal paginação anteriormente no entanto não havia parâmetros na consulta desta forma funcionava normalmente, agora com os parâmetros sendo enviados pelo $_POST tenho que salva-los de algum método para utiliza-los novamente na paginação.

 

Você tem alguma sugestão?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Passe os dados junto com o link e em vez de $_POST/$_GET use $_REQUEST, só lembre-se de sempre filtrar tudo, senão é zica na certa.

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.