toarelli Posted April 23, 2018 at 03:29 AM Report #610321 Posted April 23, 2018 at 03:29 AM Caros amigos Recorro ao auxílio dos amigos, pois já não consigo mais entender. Estou criando uma rotina em PHP com opção de: Busca / Paginação. Consegui fazer a busca, mas não estou conseguindo paginar a página, abaixo o código que estou usando: <?php include_once("header.php"); ?> <?php include_once("menu.php");?> <div class="content-wrapper"> <!-- Content Header (Page header) --> <section class="content-header"> <h1> Clientes </h1> <ol class="breadcrumb"> <li><a href="painel.php?exe=home/home"><i class="fa fa-dashboard"></i> Home</a></li> <li class="active">Clientes</li> </ol> </section> <!-- Main content --> <section class="content"> <div class="row"> <div class="box box-primary"> <div class="box-header"> <i class="ion ion-clipboard"></i> <h3 class="box-title">Lista de Clientes</h3> <a href="painel.php?exe=admin/clientes/clientes_novo" type="button" class="btn btn-default pull-right"> <i class="fa fa-plus"></i> Cadastrar Clientes</a> </div><!--Fim div box-header --> <form name="frm_busca" action="" enctype="multipart/form-data" method="post" > <div class="col-sm-6 invoice-col"> <div class="input-group margin"> <input type="text" name="pesquisa" id="pesquisa" class="form-control" onkeyup="up(this)" placeholder="Digite a Razão Social ou um Status" > <span class="input-group-btn"> <button type="submit" name="busca" id="busca" class="btn btn-primary btn-flat" value="Pesquisar" > Pesq. / Limpa </button> </span> </div> </div> </form> <table id="tabClienteLista" class="table table-bordered table-hover"> <thead> <tr style="background: #26C776;"> <td align="center"><strong>Código:</strong></td> <td align="center"><strong>Razão Social:</strong></td> <td align="center"><strong>Nome Fantasia:</strong></td> <td align="center"><strong>Categoria de Acesso:</strong></td> <td align="center"><strong>Status:</strong></td> <td align="center"><strong>Cadastrado:</strong></td> <td align="center"><strong>Ação:</strong></td> </tr> </thead> <?php //Paginação da página $pag = isset($_GET['pag']) ? (int)$_GET['pag'] : 1; $maximo = '10'; //RESULTADOS POR PÁGINA $inicio = ($pag * $maximo) - $maximo; $where = ""; $pesquisaGet = isset($_GET['pesquisa']) ? $_GET['pesquisa'] : false; $pesquisa = isset($_POST['pesquisa']) ? $_POST['pesquisa'] : $pesquisaGet; //Função para buscar os dados digitados if( isset($_POST['busca']) && $_POST['busca'] == 'Pesquisar' ){ if (isset($_POST['pesquisa'])){ $where = "WHERE razaoSocial LIKE '%".$pesquisa."%' OR clienteStatus LIKE '%".$pesquisa."%' "; } elseif (!isset($_POST['pesquisa'])) { $where=" ORDER BY clienteId ASC LIMIT ".$inicio.','.$maximo; } } $sql_pegaCliente = "SELECT * FROM clientes $where "; try{ $query_pegaClientes = $conecta->prepare($sql_pegaCliente); $query_pegaClientes->execute(); $res_queryPegaCliente = $query_pegaClientes->fetchAll(PDO::FETCH_ASSOC); $count_pegaClientes = $query_pegaClientes->rowCount(PDO::FETCH_ASSOC); }catch(PDOexcetpion $error_clientes){ echo 'Erro ao seleciona os clientes!'; } foreach($res_queryPegaCliente as $resCliente){ $clienteId = $resCliente['clienteId']; $clienteRazaoSocial = $resCliente['razaoSocial']; $clienteNomeFantasia = $resCliente['nome']; $clienteCategoria = $resCliente['clienteCategoria']; $clienteStatus = $resCliente['clienteStatus']; $clienteCriadoEM = $resCliente['criadoEM']; ?> <!-- Mostra na Tabela apenas Cliente e Fornecedor --> <?php if($clienteCategoria != "administrador" && $clienteCategoria != "fornecedor") { ?> <tr class="tr_Filtro"> <td align="center" width="40"><?php echo $clienteId;?></td> <td align="left" width="200"><?php echo $clienteRazaoSocial;?></td> <td align="left" width="50"><?php echo $clienteNomeFantasia;?></td> <td align="left" width="30"> <?php echo $clienteCategoria;?></td> <td align="left" width="15"> <?php echo $clienteStatus;?></td> <td align="center" width="10"> <?php echo date('d/m/Y',strtotime($clienteCriadoEM)); ?></td> <td align="center" width="30"> <form name="edita" action="painel.php?exe=admin/clientes/clientes_editar&clienteid=<?php echo $clienteId;?>" enctype="multipart/form-data" method="post" > <input class="btn btn-primary btn-xs" type="submit" name="executar" id="executar" style="font-size: 14px;" value="Editar" /> <input type="hidden" name="clienteId" value="<?php echo $clienteId;?>" /> </form> </td> </tr> <?php }//Fim do IF }//fim foreach ?> </table> <!-- Função para informar que nenhum Código Cliente foi encontrado --> <tbody> <tr> <?php if($count_pegaClientes == '0'){ echo '<h2> Nenhum registro encontrado!</h2>'; echo '<br/>'; } else { } ?> </tr> </tbody> <div class="box-footer clearfix no-border" style="font-size: 16px;"> <!--Paginação da página --> <?php //Faz a conexão com o Banco de Dados $cnx = mysql_connect("localhost", "root", ""); mysql_select_db("siscotaweb", $cnx); //USANDO A MESMA SQL QUE QUE USOU PARA RECUPERAR OS RESULTADOS, SE TIVER A PROPRIEDADE WHERE USE A MESMA TAMBÉM $sql_res = mysql_query("SELECT * FROM clientes ORDER BY clienteId ASC"); $total = mysql_num_rows($sql_res); $paginas = ceil($total/$maximo); $links = '10'; //QUANTIDADE DE LINKS NO PAGINATOR echo "<a href=\"painel.php?exe=admin/clientes/clientes_lista&pag=1\">Primeira</a> "; for ($i = $pag-$links; $i <= $pag-1; $i++){ if ($i <= 0){ }else{ echo"<a href=\"painel.php?exe=admin/clientes/clientes_lista&pag=$i\">$i</a> "; } } echo "$pag "; for($i = $pag +1; $i <= $pag+$links; $i++){ if($i > $paginas){ }else{ echo "<a href=\"painel.php?exe=admin/clientes/clientes_lista&pag=$i\">$i</a> "; } } echo "<a href=\"painel.php?exe=admin/clientes/clientes_lista&pag=$paginas\">Última</a> "; ?> </div> </div><!--Fim div primary --> </div><!--Fim div row --> </section> </div> <?php include_once("footer.php");?> <!--Script para Validar o Formulário --> <script language="JavaScript" > function up(lstr){ //converte minusculas em maiusculas var str=lstr.value; //obtem o valor lstr.value=str.toUpperCase(); //converte as strings e retorna ao campo } </script> Como consigo paginar a página. Grato, Toarelli
Solution acao Posted April 24, 2018 at 09:35 PM Solution Report #610343 Posted April 24, 2018 at 09:35 PM boas não é fácil dar-te a cana para pescares, porque até há muitos exemplos no Google, é mais fácil dar-te o peixe. por isso aqui vai: função que já não uso a muito tempo, não custa nada dar-ta /** * paginação de pagina * retorna array * @param type $nomePagComExtensao * @param type $totalRegistos * @param type $qtdRegistosPag * @return type array - $valPaginacao = array("paginacao" => $paginacao, "inicio" => $inicio, "limite" => $limite, "pag" =>$pag, "totalPag" => $ultima_pag); * exUtiizaçao $arrayPaginacaoVerImag = funcPaginacao("pesquisarAnuncios.php",count($arrayImagens), 1); * $arrayPaginacaoVerImag['paginacao']; */ function funcPaginacao($nomePagComExtensao,$totalRegistos,$qtdRegistosPag){ $nomePag = $nomePagComExtensao; /* $limite = $qtdRegistosPag; */ if($totalRegistos > 0 && $qtdRegistosPag > $totalRegistos) { $limite = $totalRegistos; } else { $limite = $qtdRegistosPag; } if(isset($_GET['pag'])) { $pagGet = ($_GET['pag']); $pag = filter_var($pagGet, FILTER_VALIDATE_INT); }else{ $pag = 1; } $i = 0; $inicio = 0; if ($pag > 1) { $inicio = ($pag - 1) * $limite ; } $total = $totalRegistos; $prox = $pag + 1; $ant = $pag - 1; $ultima_pag = ceil($total / $limite); /* $penultima = $ultima_pag - 1; */ $adjacentes = 2; $paginacao = ""; $espaco = "  "; /* echo '<div class="Paginacao">'; */ if ($pag>1) /* pag >1 (anterior) */ { $paginacao = '<a href="'.$nomePag.'?pag='.$ant.'" rel="nofollow">« anterior</a>'.$espaco.''; } if ($ultima_pag <= 5) /*se a pag <= 5 imprime (1,2,3,4,5) */ { for ($i = 1; $i < $ultima_pag + 1; $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="'.$nomePag.'?pag='.$i.'" rel="nofollow"> '.$i.' </a>'.$espaco.''; } else { $paginacao .= '<a href="'.$nomePag.'?pag='.$i.'" rel="nofollow"> '.$i.' </a>'.$espaco.''; } } } if ($ultima_pag > 5) /* se são mais que 5 pag. */ { if ($pag < 1 + (2 * $adjacentes)) /* se a pag <5 (1,2,3,4,5,...,penultima, ultima) */ { for ($i=1; $i< 2 + (2 * $adjacentes); $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="'.$nomePag.'?pag='.$i.'" rel="nofollow"> '.$i.' </a>'.$espaco.''; } else { $paginacao .= '<a href="'.$nomePag.'?pag='.$i.'" rel="nofollow"> '.$i.' </a>'.$espaco.''; } } $paginacao .= '...'; /* $paginacao .= '<a href="verAnunciosAv.php?pag='.$penultima.'">'.$penultima.'</a>'.$espaco.''; */ $paginacao .= '<a href="'.$nomePag.'?pag='.$ultima_pag.'" rel="nofollow"> '.$ultima_pag.' </a>'.$espaco.''; } elseif($pag > (2 * $adjacentes) && $pag < $ultima_pag - 3) /* se pag >4 e < antepenultima (1,2,...,5pag,...,penultima,ultima */ { /* $paginacao .= '<a href="verAnunciosAv.php?pag=1">1</a>'.$espaco.''; //«para dois no inicio abilites e altere a linha a seguir para linha 2» */ $paginacao .= '<a href="'.$nomePag.'?pag=1" rel="nofollow">1</a>...'; for ($i = $pag-$adjacentes; $i<= $pag + $adjacentes; $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="'.$nomePag.'?pag='.$i.'" rel="nofollow"> '.$i.' </a>'.$espaco.''; } else { $paginacao .= '<a href="'.$nomePag.'?pag='.$i.'" rel="nofollow"> '.$i.' </a>'.$espaco.''; } } $paginacao .= '...'; /* $paginacao .= '<a href="verAnunciosAv.php?pag='.$penultima.'">'.$penultima.'</a>'.$espaco.''; */ $paginacao .= '<a href="'.$nomePag.'?pag='.$ultima_pag.'" rel="nofollow"> '.$ultima_pag.' </a> '.$espaco.''; } else { /* se pag >4 e >antepenultima (1,2,...8ultimaspag) * $paginacao .= '<a href="verAnunciosAv.php?pag=1">1</a>'.$espaco.''; //«para dois no inicio abilites e altere a linha a seguir para linha 2» */ $paginacao .= '<a href="'.$nomePag.'?pag=1" rel="nofollow">1</a>... '; for ($i = $ultima_pag - (0 + (2 * $adjacentes)); $i <= $ultima_pag; $i++)//alterei 4+ para 0+ { if ($i == $pag) { $paginacao .= '<a class="atual" href="'.$nomePag.'?pag='.$i.'" rel="nofollow"> '.$i.' </a>'.$espaco.''; } else { $paginacao .= '<a href="'.$nomePag.'?pag='.$i.'" rel="nofollow"> '.$i.' </a>'.$espaco.''; } } } } if ($prox <= $ultima_pag && $ultima_pag > 1) /* alterei de 2 para 1 */ { $paginacao .= '<a href="'.$nomePag.'?pag='.$prox.'" rel="nofollow">proxima »</a>'; /* próxima »</a>'; */ } /* $paginacao.= '</div>'; */ $valPaginacao = array("paginacao" => $paginacao, "inicio" => $inicio, "limite" => $limite, "pag" =>$pag, "totalPag" => $ultima_pag); return $valPaginacao; } cumpts acao
RenanD Posted April 24, 2018 at 11:37 PM Report #610344 Posted April 24, 2018 at 11:37 PM (edited) Em 23/04/2018 às 00:29, toarelli disse: $maximo = '10'; //RESULTADOS POR PÁGINA $inicio = ($pag * $maximo) - $maximo; Isso deveria ser um cálculo numérico? se sim, mude o tipo do valor de $maximo para 10 inteiro, está em String. Nesta consulta, $sql_pegaCliente = "SELECT * FROM clientes $where ", podes fazer isto: $sql_pegaCliente = "SELECT * FROM clientes ".$where;. Espero ter ajudado. Edited April 24, 2018 at 11:47 PM by RenanD
toarelli Posted April 27, 2018 at 10:39 PM Author Report #610366 Posted April 27, 2018 at 10:39 PM Em 24/04/2018 às 23:35, acao disse: boas não é fácil dar-te a cana para pescares, porque até há muitos exemplos no Google, é mais fácil dar-te o peixe. por isso aqui vai: função que já não uso a muito tempo, não custa nada dar-ta /** * paginação de pagina * retorna array * @param type $nomePagComExtensao * @param type $totalRegistos * @param type $qtdRegistosPag * @return type array - $valPaginacao = array("paginacao" => $paginacao, "inicio" => $inicio, "limite" => $limite, "pag" =>$pag, "totalPag" => $ultima_pag); * exUtiizaçao $arrayPaginacaoVerImag = funcPaginacao("pesquisarAnuncios.php",count($arrayImagens), 1); * $arrayPaginacaoVerImag['paginacao']; */ function funcPaginacao($nomePagComExtensao,$totalRegistos,$qtdRegistosPag){ $nomePag = $nomePagComExtensao; /* $limite = $qtdRegistosPag; */ if($totalRegistos > 0 && $qtdRegistosPag > $totalRegistos) { $limite = $totalRegistos; } else { $limite = $qtdRegistosPag; } if(isset($_GET['pag'])) { $pagGet = ($_GET['pag']); $pag = filter_var($pagGet, FILTER_VALIDATE_INT); }else{ $pag = 1; } $i = 0; $inicio = 0; if ($pag > 1) { $inicio = ($pag - 1) * $limite ; } $total = $totalRegistos; $prox = $pag + 1; $ant = $pag - 1; $ultima_pag = ceil($total / $limite); /* $penultima = $ultima_pag - 1; */ $adjacentes = 2; $paginacao = ""; $espaco = "  "; /* echo '<div class="Paginacao">'; */ if ($pag>1) /* pag >1 (anterior) */ { $paginacao = '<a href="'.$nomePag.'?pag='.$ant.'" rel="nofollow">« anterior</a>'.$espaco.''; } if ($ultima_pag <= 5) /*se a pag <= 5 imprime (1,2,3,4,5) */ { for ($i = 1; $i < $ultima_pag + 1; $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="'.$nomePag.'?pag='.$i.'" rel="nofollow"> '.$i.' </a>'.$espaco.''; } else { $paginacao .= '<a href="'.$nomePag.'?pag='.$i.'" rel="nofollow"> '.$i.' </a>'.$espaco.''; } } } if ($ultima_pag > 5) /* se são mais que 5 pag. */ { if ($pag < 1 + (2 * $adjacentes)) /* se a pag <5 (1,2,3,4,5,...,penultima, ultima) */ { for ($i=1; $i< 2 + (2 * $adjacentes); $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="'.$nomePag.'?pag='.$i.'" rel="nofollow"> '.$i.' </a>'.$espaco.''; } else { $paginacao .= '<a href="'.$nomePag.'?pag='.$i.'" rel="nofollow"> '.$i.' </a>'.$espaco.''; } } $paginacao .= '...'; /* $paginacao .= '<a href="verAnunciosAv.php?pag='.$penultima.'">'.$penultima.'</a>'.$espaco.''; */ $paginacao .= '<a href="'.$nomePag.'?pag='.$ultima_pag.'" rel="nofollow"> '.$ultima_pag.' </a>'.$espaco.''; } elseif($pag > (2 * $adjacentes) && $pag < $ultima_pag - 3) /* se pag >4 e < antepenultima (1,2,...,5pag,...,penultima,ultima */ { /* $paginacao .= '<a href="verAnunciosAv.php?pag=1">1</a>'.$espaco.''; //«para dois no inicio abilites e altere a linha a seguir para linha 2» */ $paginacao .= '<a href="'.$nomePag.'?pag=1" rel="nofollow">1</a>...'; for ($i = $pag-$adjacentes; $i<= $pag + $adjacentes; $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="'.$nomePag.'?pag='.$i.'" rel="nofollow"> '.$i.' </a>'.$espaco.''; } else { $paginacao .= '<a href="'.$nomePag.'?pag='.$i.'" rel="nofollow"> '.$i.' </a>'.$espaco.''; } } $paginacao .= '...'; /* $paginacao .= '<a href="verAnunciosAv.php?pag='.$penultima.'">'.$penultima.'</a>'.$espaco.''; */ $paginacao .= '<a href="'.$nomePag.'?pag='.$ultima_pag.'" rel="nofollow"> '.$ultima_pag.' </a> '.$espaco.''; } else { /* se pag >4 e >antepenultima (1,2,...8ultimaspag) * $paginacao .= '<a href="verAnunciosAv.php?pag=1">1</a>'.$espaco.''; //«para dois no inicio abilites e altere a linha a seguir para linha 2» */ $paginacao .= '<a href="'.$nomePag.'?pag=1" rel="nofollow">1</a>... '; for ($i = $ultima_pag - (0 + (2 * $adjacentes)); $i <= $ultima_pag; $i++)//alterei 4+ para 0+ { if ($i == $pag) { $paginacao .= '<a class="atual" href="'.$nomePag.'?pag='.$i.'" rel="nofollow"> '.$i.' </a>'.$espaco.''; } else { $paginacao .= '<a href="'.$nomePag.'?pag='.$i.'" rel="nofollow"> '.$i.' </a>'.$espaco.''; } } } } if ($prox <= $ultima_pag && $ultima_pag > 1) /* alterei de 2 para 1 */ { $paginacao .= '<a href="'.$nomePag.'?pag='.$prox.'" rel="nofollow">proxima »</a>'; /* próxima »</a>'; */ } /* $paginacao.= '</div>'; */ $valPaginacao = array("paginacao" => $paginacao, "inicio" => $inicio, "limite" => $limite, "pag" =>$pag, "totalPag" => $ultima_pag); return $valPaginacao; } cumpts acao Meu amigo, muito grato por sua ajuda. Peço desculpa por postar minha dúvida, não no intuito de abusar da boa vontade, mas infelizmente programava em Clipper (DOS) e agora estou passando para Web, por tantas dúvidas. Mas DEUS o abençoa por sua ajuda.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now