Ir para conteúdo

POWERED BY:

Arquivado

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

##unregister##

Problemas em paginação

Recommended Posts

:) Alo pessoal:Criei uma busca para meu site que, através de menus de opção, o usuário pode escolher forma de pesquisa, poe Estado e Categoria, que funciona perfeitamente. Resolvi colocar também uma caixa de texto para a pesquisa por palavra-chave e usei o mesmo script usado para a pesquisa por Estados e Categorias. Só que está acontecendo o seguinte, qdo clico nos links que são gerados pela páginação, não aparece as páginas seguintes. O script que gera os links é o seguinte:CODE ...........if ($pagina > 0) { $menos = $pagina - 1;//$url = "$PHP_SELF?pagina=$menos&estado=$estado&catname=$catname"; linha original$url = "$PHP_SELF?pagina=$menos&searchword=$searchword"; //linha com a variável $searchword.echo " <a href='$url'>Anterior</a>"; //Vai para a pagina anterior.} for ($i=1; $i<$paginas; $i++) { //Gera um loop com o link para as páginas//$url = "$PHP_SELF?pagina=$i&estado=$estado&catname=$catname"; //linha original$url = "$PHP_SELF?pagina=$i&searchword=$searchword"; //linha com a variavel $searchword.echo " | <a href='$url'>$i</a>"; } if ($pagina < ($paginas - 1)) { $mais = $pagina + 1; //$url = "$PHP_SELF?pagina=$mais&estado=$estado&catname=$catname"; //linha original $url = "$PHP_SELF?pagina=$mais&searchword=$searchword"; linha com a variável $searchword. echo " | <a href='$url'>Proxima</a>"; //Vai para a próxima pagina. } A palavra digitada no formulário de pesquisa está sendo carregada corretamente para o script de busca, selecionado corretamente os resultados onde são encontrados. Tentei de outras maneiras mas sem sucesso. Caso aluém possa postar um exemplo que use a busca por palavra-chave e fazendo a pa'ginação, com certesa conseguiria visualizar a sintaxe correta.Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

aparentemente não tem erro, mas acho melhor você colocar o script inteiro, pode ser algo na query SQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grato pela resposta...<?""""""";"if ($_POST['searchword']) { //Verifica se a pesquisa está vazia$search = "select * from descrica, categorias, usuarios where catid=sitecatid AND ad_username = usuario.email AND (name like '%$searchword%' or email like '%$searchword%' or estado like '%$searchword%' or cidade like '%$searchword%' or catname like '%$searchword%' or sitedescription like '%$searchword%')"; $sql_res = mysql_query($search);$linhas = mysql_num_rows($sql_res);//Transfere nº de linhas para a variável $linhas $linhasini = 1; if (($sql_res) and ($linhas)) { //Verifica se existem resultados na pesquisa. } else { echo "<hr>"; echo "Desculpe. Não existem resultados para a palavra <b><u>$searchword</u>.</b>"; echo "Tente de novo"; echo "<hr>"; include "search.html"; //carrega o form de busca de novo. exit; } $lpp = 2; //Especifica quantos resultados queremos ver por página aberta.$total = mysql_num_rows($sql_res); //Esta linha irá retornar o total de linhas na tabela.. $paginas = ceil($total / $lpp); //Retorna o total de páginas..if(!isset($pagina)) { $pagina = 0;} //Especifica um valor para a variável $pagina, caso//a mesma não esteja setada. $inicio = $pagina * $lpp; //Retorna qual será a primeira linha a ser mostrada no MySQL.$search = mysql_query ("select * from descricao, cateforias, usuarios where catid=sitecatid AND ad_username = usuarios.email AND (name like '%$searchword%' or email like '%$searchword%' or estado like '%$searchword%' or cidade like '%$searchword%' or catname like '%$searchword%' or sitedescription like '%$searchword%')order by siteid LIMIT $inicio,$lpp"); //repete a busca com os limites de páginasecho "<p align='center'><b>Foram encontrados $linhas resultados para <u>$searchword</u>.</b></p>";//include "cabecalhoconsulta_.html";//mostra resultados while($dados = mysql_fetch_array($search)) { $name = $dados[ 'name'] ; $email = $dados ['email']; $estado = $dados['estado'] ; $cidade = $dados['cidade'] ; $catname = $dados['catname'] ; $sitedescription = $dados['sitedescription'] ; echo "<div align='center'><table width='95%' border='0' cellspacing='0'bordercolor='000000'>"; echo "<tr bgcolor='#FCE4B8'>"; echo "<td width='10%'height='29'>"; echo "<div align='center'><font face='Arial, Helvetica, sans-serif'><b>Descricao</b></font></div>"; echo "</td>"; echo "<td width='7%'height='29'>"; echo "<div align='center'><font face='Arial, Helvetica, sans-serif'><b>Contato</b></font></div>"; echo "</td>"; echo "<td width='9%'height='29'>"; echo "<div align='center'><font face='Arial, Helvetica, sans-serif'><b>Local</b></font></div>"; echo "</td>"; echo "<td width='11%'height='29'>"; echo "<div align='center'><font face='Arial, Helvetica, sans-serif'><b>Categoria</b></font></div>"; echo "</td>"; echo "<td width='63%'height='29'>"; echo "<div align='center'><font face='Arial, Helvetica, sans-serif'><b>Anúncio</b></font></div>"; echo "</td>"; echo " <tr bgcolor='#99FFFF'>"; echo " <td width='13%'height='29'><div align='center'><font face='san-serif'size='1'>$name</font></td>" ; echo " <td width='7%'height='29'><div align='center'><font face='san-serif' size='1'><a href='mailto:$email'>Email</a></font></td>"; echo " <td width='9%'height='29'><div align='center'><font face='san-serif' size='1'>$cidade - $estado</font></td>" ; //echo " <td width='10%'height='29'><div align='center'><font face='san-serif' size='1'>$cidade</font></td>" ; echo " <td width='11%'height='29'><div align='center'><font face='san-serif' size='1'>$catname</font></td>" ; echo " <td width='63%'height='29'><div align='justify'><font face='Tahoma' size='2'>$sitedescription</font></td>"; echo "<tr bgcolor='#99FFFF'>"; echo "<td width='10%'height='10'></td>"; echo "<td width='7%'height='10'></td>"; echo "<td width='9%'height='10'></td>"; echo "<td width='11%'height='10'></td>"; //echo "</td><td width='2%'height='55'><div align='center'></div></td>"; echo "<td width='63%'height='10'><p align='right'></p></td>"; echo "</tr>"; $linhasini ++ ; //incrementa a variável $linhasini $dados = mysql_fetch_array($sql_res); //transfere os dados do array para $dados. //essas duas linhas eu tirei de um livro que tenho. Elas realmente são necessárias? Quando eu as desativo, aparentemente não ocorre nenhuma mudança. } echo "</table>"; echo "<br>" ; echo "<div align='center'><font face='Verdana, Arial, Helvetica, sans-serif' size='1'><a href='java script:history.go(-1)'>Retorna</a></font>"; } //Fecha $_POST do inicio do código else { echo "<p align='center'><b>Desculpe. Você não digitou uma palavra em sua busca.</p></b>"; echo "<div align='center'><font face='Verdana, Arial, Helvetica, sans-serif' size='1'><a href='java script:history.go(-1)'>Retorna</a></font>"; exit; } ?><div align="center"><?if ($pagina > 0) { #6$menos = $pagina - 1;$url = "$PHP_SELF?pagina=$menos&searchword=$searchword"; //Tenho que ter a $searchword aqui, para ver as outras páginas de resultados?echo " <a href='$url'>Anterior</a>"; //Vai para a pagina anterior.} #6for ($i=1; $i<$paginas; $i++) { //Gera um loop com o link para as páginas$url = "$PHP_SELF?pagina=$i&searchword=$searchword";echo " | <a href='$url'>$i</a>"; } if ($pagina < ($paginas - 1)) { #8 $mais = $pagina + 1; $url = "$PHP_SELF?pagina=$mais&searchword=$searchword"; echo " | <a href='$url'>Proxima</a>"; //Vai para a próxima pagina. } ?>Agradeço a ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro está na primeira linha:<?if($_POST['searchword']) { //Verifica se a pesquisa está vaziaé verificado se existe o índice "searchword" enviado pelo método POST,o problema é que ao clicar nos links gerados pela paginação você está enviando "searchword" pelo método GETtroque a primeira linha por isso:<?if($_POST['searchword']){$searchword = $_POST['searchword'];}if(isset($searchword) && trim($searchword)!=""){

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro está na primeira linha:<?if($_POST['searchword']){$searchword = $_POST['searchword'];}if(isset($searchword) && trim($searchword)!=""){

Só pra tirar a dúvida se o envio for via GET ele não poderia usar o seguinte modo para recuperar:$_GET['searchword']???

Compartilhar este post


Link para o post
Compartilhar em outros sites

:D Grato Pessoal...Um pouco de tempo após eu ter postado esta consulta, eu percebi o erro que havia cometido. Mas eu fiz desta maneira a verificação se foi enviada um item para pesquisa:if ($searcword); no da "if($_POST['searchword']) {" e com isso consegui ver os resultados seguintes seguintes na paginação. Antes, quando tentava ver os outros resultados, aparecia o aviso de "sua pesquisa está vazia" depois do "else" que fechava o "if" da $_POST. Como o form de busca é enviado pelo método POST, é mostrado a primeira página de resultados e os links para as outras funcionam por GUET. Valeu gente ...grato pela orientação.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro está na primeira linha:<?if($_POST['searchword']){$searchword = $_POST['searchword'];}if(isset($searchword) && trim($searchword)!=""){

Só pra tirar a dúvida se o envio for via GET ele não poderia usar o seguinte modo para recuperar:$_GET['searchword']???
o uso de $_GET, $_POST, $_FILE é obrigatório quando o register_globals está offexiste outra nomenclatura, que é respectivamente:$HTT_GET_VARS, $HTTP_POST_VARS, $HTTP_POST_FILEconsulte o manual:http://br.php.net

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.