busca com filtro e paginação
Prezados Colegas, Feliz 2016! Paz, Amor, Realizações... Trata-se do seguinte, tenho uma página search.php onde realizo uma busca por seleção (Cargo, Escolaridade, Sexo, Cidade, Idade Mínima e Idade Máxima), estes valores já estão cadastrado no BD Mysql. Quando realizo esta busca, com todas as opções que desejo e da maneira como desejo, tudo ocorre perfeitamente como programado, obtenho os resultados esperados. Mostrando inclusive a quantidade de páginas correspondentes a busca feita.
Na minha primeira query (**echo $sql. **) o resultado vem assim, pelas opções escolhidas (estou optando por tudo para melhor visualizarem): SELECT * FROM tab_candidato WHERE `cargo_pretendido` = 'Analista e Desenvolvedor de Sistemas' AND `nivel` = 'Ensino Superior' AND `sexo` = 'Masculino' AND `cidade` = 'Palmas' AND `idade` >= '25' AND `idade` <= '55' ORDER BY nome ASC LIMIT 0,10 Na minha segunda query (**echo $strCount. **) o resultado vem assim: SELECT * FROM tab_candidato WHERE `cargo_pretendido` = 'Analista e Desenvolvedor de Sistemas' AND `nivel` = 'Ensino Superior' AND `sexo` = 'Masculino' AND `cidade` = 'Palmas' AND `idade` >= '25' AND `idade` <= '55' ORDER BY nome ASC O total contado está correto (**echo $total. **) e mostra, o valor: 19 -> total de páginas 3. O problema é quando dou o clique para as próximas páginas, elas me retornam vazia, ou seja, debugando posso perceber que a <div> correspondente não recebe os valores. <?php
ini_set('display_errors', true). error_reporting(E_ALL). include 'conexao.php'.?> <!-- GERAL --> <div class="pg_candidatos"> <!-- FILTRO DE BUSCA --> <fieldset> <legend>Selecione as Opções da Pesquisa</legend> <form action="<?php echo $_SERVER['PHP_SELF'].?>" method="post"> <ul> <!-- CARGO --> <li> <select name="comboCargo"> <option value="0" selected="selected">Cargo</option> <?php $qrCargo = mysqli_query($dados, "SELECT DISTINCT cargo_pretendido FROM tab_candidato ORDER BY cargo_pretendido ASC") or die(mysqli_error()). while ($linhaCargo = mysqli_fetch_array($qrCargo)) {?> <option value="<?php echo $linhaCargo['cargo_pretendido'].?>"> <?php echo $linhaCargo['cargo_pretendido'].?> </option> <?php }?> </select> </li> <!-- ESCOLARIDADE --> <li> <select name="comboNivel"> <option value="0" selected="selected">Escolaridade</option> <?php $qrNivel = mysqli_query($dados, "SELECT DISTINCT nivel FROM tab_candidato ORDER BY nivel ASC") or die(mysqli_error()). while ($linhaNivel = mysqli_fetch_array($qrNivel)) {?> <option value="<?php echo $linhaNivel['nivel'].?>"> <?php echo $linhaNivel['nivel'].?> </option> <?php }?> </select> </li> <!-- SEXO --> <li> <select name="comboSexo"> <option value="0" selected="selected">Sexo</option> <?php $qrSexo = mysqli_query($dados, "SELECT DISTINCT sexo FROM tab_candidato ORDER BY sexo ASC") or die(mysqli_error()). while ($linhaSexo = mysqli_fetch_array($qrSexo)) {?> <option value="<?php echo $linhaSexo['sexo'].?>"> <?php echo $linhaSexo['sexo'].?> </option> <?php }?> </select> </li> <!-- CIDADE --> <li> <select name="comboCidade"> <option value="0" selected="selected">Cidade</option> <?php $qrCidade = mysqli_query($dados, "SELECT DISTINCT cidade FROM tab_candidato ORDER BY cidade ASC") or die(mysqli_error()). while ($linhaCidade = mysqli_fetch_array($qrCidade)) {?> <option value="<?php echo $linhaCidade['cidade'].?>"> <?php echo $linhaCidade['cidade'].?> </option> <?php }?> </select> </li> <!-- IDADE MÍNIMA --> <li> <select name="comboIdadeMin"> <option value="0" selected="selected">Idade Mínima</option> <?php $qrIdadeMin = mysqli_query($dados, "SELECT DISTINCT idade FROM tab_candidato ORDER BY idade ASC") or die(mysqli_error()). while ($linhaIdadeMin = mysqli_fetch_array($qrIdadeMin)) {?> <option value="<?php echo $linhaIdadeMin['idade'].?>"> <?php echo $linhaIdadeMin['idade'].?> </option> <?php }?> </select> </li> <!-- IDADE MÁXIMA --> <li> <select name="comboIdadeMax"> <option value="0" selected="selected">Idade Máxima</option> <?php $qrIdadeMax = mysqli_query($dados, "SELECT DISTINCT idade FROM tab_candidato ORDER BY idade ASC") or die(mysqli_error()). while ($linhaIdadeMax = mysqli_fetch_array($qrIdadeMax)) {?> <option value="<?php echo $linhaIdadeMax['idade'].?>"> <?php echo $linhaIdadeMax['idade'].?> </option> <?php }?> </select> </li> <div class="limpar"></div> </ul> <div class="limpar"></div> <div class="bt_pesquisar"><input type="submit" value="Buscar" /></div> <div class="limpar"></div> </form> </fieldset> <!-- /FILTRO DE BUSCA --> <!-- RETORNO DA BUSCA --> <fieldset> <legend>Resultado da Pesquisa</legend> <?php $maximo = 10. $pagina = (isset($_GET['pagina']))? (int)$_GET['pagina']: 1. $inicio = ($maximo * $pagina) - $maximo. if ($_SERVER['REQUEST_METHOD'] == "POST") { $where = array(). $cargo = $_REQUEST['comboCargo']. $nivel = $_REQUEST['comboNivel']. $sexo = $_REQUEST['comboSexo']. $cidade = $_REQUEST['comboCidade']. $idademin = $_REQUEST['comboIdadeMin']. $idademax = $_REQUEST['comboIdadeMax']. if ( $cargo ) { $where[] = " `cargo_pretendido` = '{$cargo}' ". } if ( $nivel ) { $where[] = " `nivel` = '{$nivel}' ". } if ( $sexo ) { $where[] = " `sexo` = '{$sexo}' ". } if ( $cidade ) { $where[] = " `cidade` = '{$cidade}' ". } if ( $idademin ) { $where[] = " `idade` >= '{$idademin}' ". } if ( $idademax ) { $where[] = " `idade` <= '{$idademax}' ". } $sql = "SELECT * FROM tab_candidato". if( sizeof( $where ) ) $sql.= ' WHERE '.implode( ' AND ', $where ).' ORDER BY nome ASC LIMIT '.$inicio.','.$maximo. echo $sql. echo '<br />'. $query = mysqli_query($dados, $sql) or die( mysqli_error() ). $contar = mysqli_num_rows($query). if ($contar == 0) { echo "<p>Não foram encontrados registros!</p>". } else { while ($rs = mysqli_fetch_array($query)) {?> <div class="bx_resultado"> <div class="campo_result1"><?php echo $rs['nome'].?></div> <div class="campo_result2"><?php echo $rs['email'].?></div> <div class="campo_result3"><?php echo $rs['celular'].?></div> <div class="campo_result4"><a href="visualizar.php?id=<?php echo $rs['id'].?>"><img title="Clique visualizar" alt="Clique visualizar" src="images/ico_pesq.png"></a></div> <div class="limpar"></div> </div> <div class="limpar"></div> <?php }//while }//else $strCount = "SELECT * FROM tab_candidato". if( sizeof( $where ) ) $strCount.= ' WHERE '.implode( ' AND ', $where ).' ORDER BY nome ASC'. echo $strCount. echo '<br />'. $qrCount = mysqli_query($dados, $strCount) or die( mysqli_error() ). $total = mysqli_num_rows($qrCount). echo $total. echo '<br />'. $pgs = ceil($total / $maximo). $menos = $pagina - 1. $mais = $pagina + 1. if ($pgs > 1){ echo "<br />". // Mostragem de pagina if ($menos > 0) { echo "<a href=".$_SERVER['PHP_SELF']."?pagina=$menos>Anterior</a> ". } // Listando as paginas for ($i = 1. $i <= $pgs. $i++) { if ($i!= $pagina) { echo "<a href=".$_SERVER['PHP_SELF']."?pagina=".$i.">$i</a> | ". } else { echo " <strong>".$i."</strong> | ". } } if ($mais <= $pgs) { echo "<a href=".$_SERVER['PHP_SELF']."?pagina=$mais>Próxima</a> ". } } }//if?> </fieldset> <!-- /RETORNO DA BUSCA --> </div> <!-- /GERAL --> Já tentei várias formas de paginação e não obtive nenhuma solução. E não consigo deparar com o que estou errando. A tabela é única com todos os campos que preciso. Agradeço desde já a atenção dispensada, RogarfilDiscussão (4)
Carregando comentários...