weidson 3 Denunciar post Postado Agosto 19, 2013 Como faço para manter uma variável em uma paginação. Exemplo:Quero paginar os resultados do 'mes' que equivale ao número'1'A primeira tela aparece normalmente a requisição, já na segunda dá errode argumentação no mysql, verificando os logs, notei que o valor davariável não estava sendo passado.Como posso manter esta variável?Já tentei passar ela através da url porém a mesma não foi passada econtinua o erro de argumentação.Qualquer ajuda.... <?php mb_http_input("iso-8859-1"); mb_http_output("iso-8859-1"); require_once('css.php'); ?> <!doctype html> <html> <head> <style type="text/css"> .table{ text-align:center} .box{position:relative; float:right; width:300px; padding:10px; margin:10px; background:#DCF1F1; border:1px solid #CDE2ED;} .global-div{width:900px; height:auto; min-height:300px; padding:0 15px 15px 15px; position:absolute; float:none; left:50%; margin:5px 0 0 -470px ; border:5px solid #fff; background:#fff; box-shadow:0 0 5px #999; -moz-box-shadow:0 0 5px #999; -webkit-box-shadow:0 0 5px #999; } .global-div img{float:left; margin-right:20px; border:1px solid #eaeaea; z-index:500; } h1{font:italic 4em Georgia, "Times New Roman", Times, serif; text-align:center; margin: -5px -20px 20px -20px; background:#111; color:#fff; padding:15px 5px; letter-spacing:-0.04em; text-shadow:1px 1px 5px #000; font-weight:normal;} h2{font:3em Georgia, "Times New Roman", Times, serif;} ul{list-style:none; margin-left:300px;} ul li{display:inline; margin-right:50px;} .paginacao a{color:#333; padding:3px 5px; border:1px solid #ccc; text-decoration:none; margin:0 3px;} .paginacao a:hover{background:#333; color:#fff;} .paginacao a.atual{font-weight:bold; background:#fff; color:#333; border:0; border-bottom:1px solid #ccc; font-size:1.6em;} </style> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Listar Controle</title> </head> <body> <p style="text-align: center"> <form name="form1" method="post" action="list_controle.php"> <p> <label for="mes">Mês:</label> <select name="mes" id="mes"> <option>SELECIONE </option> <option value="01">Janeiro</option> <option value="02">Fevereiro</option> <option value="03">Março</option> <option value="04">Abril</option> <option value="05">Maio</option> <option value="06">Junho</option> <option value="07">Julho</option> <option value="08">Agosto</option> <option value="09">Setembro</option> <option value="10">Outubro</option> <option value="11">Novembro</option> <option value="12">Dezembro</option> </select> <input type="submit" name="procurar" class="button custom" id="procurar" value="Procurar"> </p> </form> <table width="770" border="0" align="center"> <form name="form1" method="post" action=""> <tr> <td>DATA</td> <td>SERMÃO</td> <td>IGREJA</td> <td>ATUALIZAR</td> <td>EXCLUIR</td> </tr> <?php @$mes=$_POST['mes']; if ( $mes=='SELECIONE' ) { echo "<script language='JavaScript'> alert('Selecione um Mes'); window.location.href='javascript:history.go(-1)' </script>"; exit; } include "db.php" ; ?> <?php @$pag = ($_GET['pag']); $pag = filter_var($pag, FILTER_VALIDATE_INT); $inicio = 0; $limite = 2 ; if ($pag!='') { $inicio = $pag - 1; } $busca_total = mysql_query("SELECT COUNT(*) as total FROM tb_controle"); $total = mysql_fetch_array($busca_total); $total = $total['total']; $busca = mysql_query("select * from tb_controle c inner join tb_igreja i on i.idigreja = c.idigreja inner join tb_sermao s on s.idsermao = c.idsermao WHERE MONTH(c.`data`) = '$mes' ORDER BY c .`data` ASC LIMIT $inicio, $limite"); if (mysql_num_rows($busca)>0) { while($linha = mysql_fetch_array($busca)){ $data = implode("/",array_reverse(explode("-", $linha['data']))); ?> <tr> <td> <?php echo $data ?></td> <!-- Data vem da tb_controle--> <td> <?php echo $linha['titulo'] ?></td> <!-- titulo vem da tb_sermao e usa o idsermao da tb_controle--> <td> <?php echo $linha['igreja'] ?></td> <!-- igreja vem da tb_igreja e usa o idigreja na tb_controle--> <td><a href="ed_controle.php?id=<?php echo $linha['idcontrole']; ?>"> <img src="img/ed.png" alt="Editar" title="Editar"></a></td> <td><a href ="ex/fun_exc_controle.php?id=<?php echo $linha['idcontrole']; ?>" > <img src="img/ex.png" alt="Excluir" title="Excluir"></a></td> </tr> </form> <? } ?> </table> <br><br> <? $prox = $pag + 1; $ant = $pag - 1; $ultima_pag = ceil($total / $limite); $penultima = $ultima_pag - 1; $adjacentes = 2; echo '<div class="paginacao">'; if ($pag>1) { $paginacao = '<a href="list_controle.php?pag='.$ant.'">anterior</a>'; } if ($ultima_pag <= 5) { for ($i=1; $i< $ultima_pag+1; $i++) { if ($i == $pag) { @$paginacao .= '<a class="atual" href="list_controle.php?pag='.$i.'">'.$i.'</a>'; } else { @$paginacao .= '<a href="list_controle.php?pag='.$i.'">'.$i.'</a>'; } } } if ($ultima_pag > 5) { if ($pag < 1 + (2 * $adjacentes)) { for ($i=1; $i< 2 + (2 * $adjacentes); $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="list_controle.php?pag='.$i.'">'.$i.'</a>'; } else { $paginacao .= '<a href="list_controle.php?pag='.$i.'">'.$i.'</a>'; } } $paginacao .= '...'; $paginacao .= '<a href="list_controle.php?pag='.$penultima.'">'.$penultima.'</a>'; $paginacao .= '<a href="list_controle.php?pag='.$ultima_pag.'">'.$ultima_pag.'</a>'; } elseif($pag > (2 * $adjacentes) && $pag < $ultima_pag - 3) { $paginacao .= '<a href="list_controle.php?pag=1">1</a>'; $paginacao .= '<a href="list_controle.php?pag=1">2</a> ... '; for ($i = $pag-$adjacentes; $i<= $pag + $adjacentes; $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="list_controle.php?pag='.$i.'">'.$i.'</a>'; } else { $paginacao .= '<a href="list_controle.php?pag='.$i.'">'.$i.'</a>'; } } $paginacao .= '...'; $paginacao .= '<a href="list_controle.php?pag='.$penultima.'">'.$penultima.'</a>'; $paginacao .= '<a href="list_controle.php?pag='.$ultima_pag.'">'.$ultima_pag.'</a>'; } else { $paginacao .= '<a href="list_controle.php?pag=1">1</a>'; $paginacao .= '<a href="list_controle.php?pag=1">2</a> ... '; for ($i = $ultima_pag - (4 + (2 * adjacentes)); $i <= $ultima_pag; $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="list_controle.php?pag='.$i.'">'.$i.'</a>'; } else { $paginacao .= '<a href="list_controle.php?pag='.$i.'">'.$i.'</a>'; } } } } } if ($prox <= $ultima_pag && $ultima_pag > 2) { $paginacao .= '<a href="list_controle.php?pag='.$prox.'">próxima »</a>'; } echo $paginacao; echo '</div>'; ?> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
Cristianoferr 32 Denunciar post Postado Agosto 19, 2013 Passa (ou repassa) via get. Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Agosto 19, 2013 1. Troque @$mes=$_POST['mes']; por [inline]$mes = $_REQUEST['mes'] or 1;[/inline]. 2. Adicione no início do script [inline]output_add_rewrite_var('mes', $mes);[/inline] Compartilhar este post Link para o post Compartilhar em outros sites
weidson 3 Denunciar post Postado Agosto 20, 2013 nao deu muito certo quando eu vou para a proxima pagina ele nao me mostra os resultados do mes selecionado Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Agosto 20, 2013 Mas mostra alguma coisa? Dá algum erro? Algum aviso? Aparece alguma coisa? Compartilhar este post Link para o post Compartilhar em outros sites
weidson 3 Denunciar post Postado Agosto 20, 2013 só altera a url http://localhost/versao2.0/list_controle.php?pag=2&mes= na primeira pesquisa eu seleciono um mês ex: janeiro ele exibe os dados de janeiro mas quando clico pra ir pra próxima pagina a variável mês fica vazia ae não exibe a continuação da paginação ! se eu armazenar o mês selecionado em cookie e fazer a busca na hora da paginação daria certo? me ajudem ae pessoal ! Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Agosto 20, 2013 Qual é a linha que imprime essa URL aí que você clicou?? Compartilhar este post Link para o post Compartilhar em outros sites
weidson 3 Denunciar post Postado Agosto 20, 2013 todas essas linha que montam o link fika assim anterior 1 2 3 4 5 próximo <? $prox = $pag + 1; $ant = $pag - 1; $ultima_pag = ceil($total / $limite); $penultima = $ultima_pag - 1; $adjacentes = 2; echo '<div class="paginacao">'; if ($pag>1) { $paginacao = '<a href="list_agenda.php?pag='.$ant.'">anterior</a>'; } if ($ultima_pag <= 5) { for ($i=1; $i< $ultima_pag+1; $i++) { if ($i == $pag) { @$paginacao .= '<a class="atual" href="list_agenda.php?pag='.$i.'">'.$i.'</a>'; } else { @$paginacao .= '<a href="list_agenda.php?pag='.$i.'">'.$i.'</a>'; } } } if ($ultima_pag > 5) { if ($pag < 1 + (2 * $adjacentes)) { for ($i=1; $i< 2 + (2 * $adjacentes); $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="list_agenda.php?pag='.$i.'">'.$i.'</a>'; } else { $paginacao .= '<a href="list_agenda.php?pag='.$i.'">'.$i.'</a>'; } } $paginacao .= '...'; $paginacao .= '<a href="list_agenda.php?pag='.$penultima.'">'.$penultima.'</a>'; $paginacao .= '<a href="list_agenda.php?pag='.$ultima_pag.'">'.$ultima_pag.'</a>'; } elseif($pag > (2 * $adjacentes) && $pag < $ultima_pag - 3) { $paginacao .= '<a href="list_agenda.php?pag=1">1</a>'; $paginacao .= '<a href="list_agenda.php?pag=1">2</a> ... '; for ($i = $pag-$adjacentes; $i<= $pag + $adjacentes; $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="list_agenda.php?pag='.$i.'">'.$i.'</a>'; } else { $paginacao .= '<a href="list_agenda.php?pag='.$i.'">'.$i.'</a>'; } } $paginacao .= '...'; $paginacao .= '<a href="list_agenda.php?pag='.$penultima.'">'.$penultima.'</a>'; $paginacao .= '<a href="list_agenda.php?pag='.$ultima_pag.'">'.$ultima_pag.'</a>'; } else { $paginacao .= '<a href="list_agenda.php?pag=1">1</a>'; $paginacao .= '<a href="list_agenda.php?pag=1">2</a> ... '; for ($i = $ultima_pag - (4 + (2 * adjacentes)); $i <= $ultima_pag; $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="list_agenda.php?pag='.$i.'">'.$i.'</a>'; } else { $paginacao .= '<a href="list_agenda.php?pag='.$i.'">'.$i.'</a>'; } } } } } if ($prox <= $ultima_pag && $ultima_pag > 2) { $paginacao .= '<a href="list_agenda.php?pag='.$prox.'">próxima »</a>'; } echo $paginacao; echo '</div>'; ?> Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Agosto 20, 2013 você disse que cai numa url list_controle.php?pag=2&mes=, mas eu não vi você definindo o mês em lugar nenhum... Compartilhar este post Link para o post Compartilhar em outros sites
weidson 3 Denunciar post Postado Agosto 21, 2013 alterei aqui o método da URL para o get pra ver como estava passando vi que a minha URL esta assim list_controle.php?mes=06&procurar=Procurar isso na primeira pesquisa quando seleciono o mês que eu desejo ! o erro esta aqui nos links da paginação que esta ficando assim list_controle.php?pag=1 e teria que esta dessa forma aqui list_controle.php?mes=06&procurar=Procurar&pag=1 no meu codigo o trecho que monta a paginação esta com a url errada como posso corrigir isso ae galera me ajudem esse é o trecho que monta a paginação if ($pag>1) { $paginacao = '<a href="list_controle.php?pag='.$ant.'">anterior</a>'; } if ($ultima_pag <= 5) { for ($i=1; $i< $ultima_pag+1; $i++) { if ($i == $pag) { @$paginacao .= '<a class="atual" href="list_controle.php?pag='.$i.'">'.$i.'</a>'; } else { @$paginacao .= '<a href="list_controle.php?pag='.$i.'">'.$i.'</a>'; } } } if ($ultima_pag > 5) { if ($pag < 1 + (2 * $adjacentes)) { for ($i=1; $i< 2 + (2 * $adjacentes); $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="list_controle.php?pag='.$i.'">'.$i.'</a>'; } else { $paginacao .= '<a href="list_controle.php?pag='.$i.'">'.$i.'</a>'; } } $paginacao .= '...'; $paginacao .= '<a href="list_controle.php?pag='.$penultima.'">'.$penultima.'</a>'; $paginacao .= '<a href="list_controle.php?pag='.$ultima_pag.'">'.$ultima_pag.'</a>'; } elseif($pag > (2 * $adjacentes) && $pag < $ultima_pag - 3) { $paginacao .= '<a href="list_controle.php?pag=1">1</a>'; $paginacao .= '<a href="list_controle.php?pag=1">2</a> ... '; for ($i = $pag-$adjacentes; $i<= $pag + $adjacentes; $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="list_controle.php?pag='.$i.'">'.$i.'</a>'; } else { $paginacao .= '<a href="list_controle.php?pag='.$i.'">'.$i.'</a>'; } } $paginacao .= '...'; $paginacao .= '<a href="list_controle.php?pag='.$penultima.'">'.$penultima.'</a>'; $paginacao .= '<a href="list_controle.php?pag='.$ultima_pag.'">'.$ultima_pag.'</a>'; } else { $paginacao .= '<a href="list_controle.php?pag=1">1</a>'; $paginacao .= '<a href="list_controle.php?pag=1">2</a> ... '; for ($i = $ultima_pag - (4 + (2 * adjacentes)); $i <= $ultima_pag; $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="list_controle.php?pag='.$i.'">'.$i.'</a>'; } else { $paginacao .= '<a href="list_controle.php?pag='.$i.'">'.$i.'</a>'; } } } } } if ($prox <= $ultima_pag && $ultima_pag > 2) { $paginacao .= '<a href="list_controle.php?pag='.$prox.'">próxima »</a>'; } echo $paginacao; echo '</div>'; ?> Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Agosto 21, 2013 Amigo, em algum lugar dessa maçaroca toda, existe alguma coisa como [inline]echo '<a href="list_controle.php?pag=[qualquercoisaaqui]&mes=[/inline] que eu falhei em encontrar em todos os seus posts contendo código. Sinto muito pela minha incompetência. Em todo e qualquer teste que eu faça [inline]echo '<a href="list_controle.php?pag=2">...';[/inline], alguma força misteriosa e maligna faz o browser gerar o link para list_controle.php?pag=2 e não list_controle.php?pag=2&mes=, como você cita no post #6. Se puder me ajudar a fazer isso acontecer, quem sabe eu possa te ajudar a entender porque. Compartilhar este post Link para o post Compartilhar em outros sites
weidson 3 Denunciar post Postado Agosto 21, 2013 quando eu utilizo a função que vc me mandou no inicio do meu codigo e altero o metodo de POST pra Request output_add_rewrite_var('mes', $mes); $mes = $_REQUEST['mes'] or 1; ela me gera a url dessa forma aqui list_controle.php?pag=2&mes= que realmente seguindo sua lógica era pra esta recebendo o valor definido pelo select na $mes Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Agosto 21, 2013 inverte a ordem... $mes = $_REQUEST['mes'] or 1; output_add_rewrite_var('mes', $mes); Me desculpe, realmente faltei com a clareza... 2. Adicione no início do script [inline]output_add_rewrite_var('mes', $mes);[/inline] Compartilhar este post Link para o post Compartilhar em outros sites
weidson 3 Denunciar post Postado Agosto 21, 2013 eu fiz assim mesmo coloquei output_add_rewrite_var('mes', $mes); no inicio do meu codigo e onde eu usava $mes=$_POST['mes']; coloque o requeste ae que da aquela url com &mes= Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Agosto 21, 2013 [inline]output_add_rewrite_var[/inline] tem que vir depois de [inline]$mes = $_REQUEST ?[/inline] Compartilhar este post Link para o post Compartilhar em outros sites
deljdl 0 Denunciar post Postado Agosto 22, 2013 Cara seu código tá muito bagunçado então nem tentei entender. Veja se isso te ajuda : ps.tem até o estilo aí <!-- __________________________________________________________________________________ paginacao by jdl -->?><style>.paginacao{ width:100%; borde:solid red 3px; height:auto; }.pags{ border:solid #ccc 1px; width:auto; float:left; margin:5px; font-weight:bold;}.pags_atual{ border:solid #ccc 1px; background-color:#F00; width:auto; float:left; margin:5px; font-weight:bold;}.pags:hover{ background-color:#F00; color:#FFF;}</style><?//-----------------------------------------------------------------------------paginacao $ordem='ORDER BY nome ASC ';$tabela='categorias'; $final = "20";$condicao='';$busca='';$resubusca='';$paginacao='';if(isset($_REQUEST['busca'])) if( strlen($_REQUEST['busca'])>=4) { $busca=$_REQUEST['busca']; $condicao="WHERE titulo LIKE '%$busca%'"; $resubusca="Resultados para a busca : <strong>$busca</strong><br>"; } if(isset($_GET['p'])) $pagina = $_GET['p']; else $pagina=1;$pag=mysql_query("SELECT * FROM $tabela $condicao $ordem ");$total_de_linhas = mysql_num_rows($pag);$total_de_paginas = ceil ($total_de_linhas/$final);if ($pagina==''){ $pagina='1'; }$inicio = ($pagina-1) * $final;$inicioing_no = $inicio + 1;if ($total_de_linhas - $inicio < $final) { $ultima_pagina = $total_de_linhas;} elseif ($total_de_linhas - $inicio >= $final) { $ultima_pagina = $inicio + $final; }//-----------------------------------------------------------------------------paginacao final//Aqui ira exibir a paginaçãoif($total_de_linhas>0){if ($total_de_linhas - $ultima_pagina > $final) { $var2 = $final;} elseif ($total_de_linhas - $ultima_pagina <= $final) { $var2 = $total_de_linhas - $ultima_pagina; }$paginacao.='<div class="paginacao">';for ($i=1; $i<=$total_de_paginas; $i++) {if($i==$pagina)$paginacao.='<div class="pags_atual">'.$i.'</div>';else$paginacao.='<a href="'.$_SERVER['SCRIPT_NAME'].'?p='.$i.'&busca='.$busca.'"><div class="pags">'.$i.'</div></a>';}$paginacao.="</div>";}//______________________________________________________________________________ fimpaginacao by jdl ?> Compartilhar este post Link para o post Compartilhar em outros sites
weidson 3 Denunciar post Postado Agosto 22, 2013 Obg a todos que ajudaram ! Compartilhar este post Link para o post Compartilhar em outros sites