Ir para conteúdo

POWERED BY:

Arquivado

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

thiago_php

paginacao

Recommended Posts

entao tenho essa paginacao so que ele nao ta indo para proxima pagina nao esta paginando ja tentei e nao consegui achar o erro

 

<?include("../../../Apache2/htdocs/sitepaulista(novo)/Connections/conexao.php"); //Conecta com o banco de dados MySQL$medico = $_POST['medico'];if($medico != ""){$resultadospg=1; //resultado por pagina// Realiza busca no banco de dados.$busca = mysql_query("SELECT medicos.*, especialidades.* from (medico_especialidades INNER JOIN medicos ON medico_especialidades.id_medico = medicos.id_medico)INNER JOIN especialidades ON medico_especialidades.id_especialidades = especialidades.id_especialidades WHERE medicos.medico LIKE '$medico%' Order by medicos.medico") or print (mysql_error());$lpp = $resultadospg; // Especifique quantos resultados você quer por página$total = mysql_num_rows($busca); // Esta função irá retornar o total de linhas na tabela$paginas = ceil($total / $lpp); // Retorna o total de páginasif(!isset($pagina)) { $pagina = 0; } // Especifica uma valor para variavel pagina caso a mesma não esteja setada$inicio = $pagina * $lpp; // Retorna qual será a primeira linha a ser mostrada no MySQL$buscar = mysql_query("SELECT medicos.*, especialidades.* from (medico_especialidades INNER JOIN medicos ON medico_especialidades.id_medico = medicos.id_medico)INNER JOIN especialidades ON medico_especialidades.id_especialidades = especialidades.id_especialidades WHERE medicos.medico LIKE '$medico%' Order by medicos.medico LIMIT $inicio, $lpp"); // Executa a query no MySQL com o limite de linhas.echo"<FONT FACE='$fonte'><FONT SIZE=1><b>Buscar</b></font><FONT FACE='$fonte'><FONT SIZE=2><br>A palavra procurada foi: <b>$medico</b><BR>Retornou <font color='#FF0000'>$total</font> registro(s)<br><br>";echo"<table width='102%' border='1' align='center' cellpadding='4' cellspacing='0' bordercolor='#DBDBDB'>   <tr>	<td bgcolor='#92A4C2'><font color='#FFFFFF'><b>Médico</b></font></td>	<td bgcolor='#92A4C2'><font color='#FFFFFF'><b>Especialidades</b></font></td>	<td bgcolor='#92A4C2'><font color='#FFFFFF'><b>Horário de Atendimento</b></font></td>  </tr>";while($linha = mysql_fetch_array($buscar)){$id = $linha["id"];$med = $linha["medico"];$especialidades = $linha["especialidades"];$desc_atend  = $linha["desc_atend"];if ($cor == '#D9D9D9')	$cor = '#EAEAEA';else $cor = '#D9D9D9';echo"  <tr bgcolor='$cor'>	<td width='26%' class='descricao'>$med</td>	<td width='25%' class='descricao'>$especialidades</td>	<td width='33%' class='descricao'>$desc_atend</td>  </tr>";}echo"</table><br>";// Mosta as opções Anterior, número das páginas e Próxima página.if($pagina > 0) {   $menos = $pagina - 1;   $url = "?em=descricao&medico=$medico&pagina=$menos";   echo "<FONT FACE='$fonte'><FONT SIZE=-2><a href='$url'><img src='../Previous.gif' width='25' height='25' border='0'></a>"; // Vai para a página anterior}for($i=0;$i<$paginas;$i++) { // Gera um loop com o link para as páginas   $url = "?em=descricao&medico=$med&pagina=$i";   echo "<FONT FACE='$fonte'><FONT SIZE=-2> | <a href='$url'>$i</a>";}if($pagina < ($paginas - 1)) {   $mais = $pagina + 1;   $url = "?em=descricao&medico=$med&pagina=$mais";   echo " | <a href='$url'><img src='../Next.gif' width='25' height='25' border='0'></a> </font>";   }// Caso não haja nenhum resultado da busca.$total2 = mysql_num_rows($busca);if($total2 == 0){echo"<BR>Nenhum resultado foi encontrado com:<BR><BR><b>$medico<BR><BR><font color='#FF0000'><b>Tente novamente utilizando outros valores.</b></font></b><BR><BR><a href='java script:history.go(-1)'>«« Voltar</a>";}}mysql_close($conn);?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

já tentou:

 

$pagina = isset($_GET['pagina']) ? $_GET['pagina'] : 1;
Por padrão a diretiva Registers Globals é off por medida de segurança, então, no caso a sua pagina atual seria sempre a 1.

 

Porque agui, a variável $pagina vai ser sempre null http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

if(!isset($pagina)) { $pagina = 0; }

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao se puder dar uma forca nesse meu se acher que deve alterar algo ok valeu

fiz alguns testes aqui, troque isso:

 

$medico = $_POST['medico'];
por

 

$medico		=	isset($_POST['medico']) ? $_POST['medico'] : $_GET['medico'];
* Isso :

 

if(!isset($pagina)) { $pagina = 0; } // Especifica uma valor para variavel pagina caso a mesma não esteja setada
por

 

$pagina	=	isset($_GET['pagina']) ? $_GET['pagina'] : 0; /* Pega a pagina atual, caso não seja definida, sera 0 */
procure no arquivo pela variavel $med e troque por $medico

 

nessas linhas

 

1.

$url = "?em=descricao&medico=$med&pagina=$i";
2.

$url = "?em=descricao&medico=$med&pagina=$mais";
Fiz os teste aqui com essa alterações e funcionou legal.

 

Abraços e ate mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao fiz assim so quando clico pra ir para o proximo a pagina aparece em braco

 

$medico		=	isset($_POST['medico']) ? $_POST['medico'] : $_GET['medico'];if($medico != ""){$resultadospg=1; //resultado por pagina// Realiza busca no banco de dados.$busca = mysql_query("SELECT medicos.*, especialidades.* from (medico_especialidades INNER JOIN medicos ON medico_especialidades.id_medico = medicos.id_medico)INNER JOIN especialidades ON medico_especialidades.id_especialidades = especialidades.id_especialidades WHERE medicos.medico LIKE '$medico%' Order by medicos.medico") or print (mysql_error());$lpp = $resultadospg; // Especifique quantos resultados você quer por página$total = mysql_num_rows($busca); // Esta função irá retornar o total de linhas na tabela$paginas = ceil($total / $lpp); // Retorna o total de páginas$pagina	=	isset($_GET['pagina']) ? $_GET['pagina'] : 0; /* Pega a pagina atual, caso não seja definida, sera 0 */ // Especifica uma valor para variavel pagina caso a mesma não esteja setada$inicio = $pagina * $lpp; // Retorna qual será a primeira linha a ser mostrada no MySQL$buscar = mysql_query("SELECT medicos.*, especialidades.* from (medico_especialidades INNER JOIN medicos ON medico_especialidades.id_medico = medicos.id_medico)INNER JOIN especialidades ON medico_especialidades.id_especialidades = especialidades.id_especialidades WHERE medicos.medico LIKE '$medico%' Order by medicos.medico LIMIT $inicio, $lpp"); // Executa a query no MySQL com o limite de linhas.echo"<FONT FACE='$fonte'><FONT SIZE=1><b>Buscar</b></font><FONT FACE='$fonte'><FONT SIZE=2><br>A palavra procurada foi: <b>$medico</b><BR>Retornou <font color='#FF0000'>$total</font> registro(s)<br><br>";echo"<table width='102%' border='1' align='center' cellpadding='4' cellspacing='0' bordercolor='#DBDBDB'>   <tr>	<td bgcolor='#92A4C2'><font color='#FFFFFF'><b>Médico</b></font></td>	<td bgcolor='#92A4C2'><font color='#FFFFFF'><b>Especialidades</b></font></td>	<td bgcolor='#92A4C2'><font color='#FFFFFF'><b>Horário de Atendimento</b></font></td>     </tr>";while($linha = mysql_fetch_array($buscar)){$id = $linha["id"];$medico = $linha["medico"];$especialidades = $linha["especialidades"];$desc_atend  = $linha["desc_atend"];if ($cor == '#D9D9D9')	$cor = '#EAEAEA';else $cor = '#D9D9D9';echo"  <tr bgcolor='$cor'>	<td width='26%' class='descricao'>$medico</td>	<td width='25%' class='descricao'>$especialidades</td>   	<td width='33%' class='descricao'>$desc_atend</td>   </tr>";}echo"</table><br>";// Mosta as opções Anterior, número das páginas e Próxima página.if($pagina > 0) {   $menos = $pagina - 1;   $url = "?em=descricao&medico=$medico&pagina=$menos";   echo "<FONT FACE='$fonte'><FONT SIZE=-2><a href='$url'><img src='../Previous.gif' width='25' height='25' border='0'></a>"; // Vai para a página anterior}for($i=0;$i<$paginas;$i++) { // Gera um loop com o link para as páginas   $url = "?em=descricao&medico=$med&pagina=$i";   echo "<FONT FACE='$fonte'><FONT SIZE=-2> | <a href='$url'>$i</a>";}if($pagina < ($paginas - 1)) {   $mais = $pagina + 1;   $url = "?em=descricao&medico=$med&pagina=$mais";   echo " | <a href='$url'><img src='../Next.gif' width='25' height='25' border='0'></a> </font>";   }// Caso não haja nenhum resultado da busca.$total2 = mysql_num_rows($busca);if($total2 == 0){echo"<BR>Nenhum resultado foi encontrado com:<BR><BR><b>$medico<BR><BR><font color='#FF0000'><b>Tente novamente utilizando outros valores.</b></font></b><BR><BR><a href='java script:history.go(-1)'>«« Voltar</a>";}}mysql_close($conn);?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

faltou mudar isso aqui :

 

for($i=0;$i<$paginas;$i++) { // Gera um loop com o link para as páginas   $url = "?em=descricao&medico=$med&pagina=$i";   echo "<FONT FACE='$fonte'><FONT SIZE=-2> | <a href='$url'>$i</a>";}if($pagina < ($paginas - 1)) {   $mais = $pagina + 1;   $url = "?em=descricao&medico=$med&pagina=$mais";   echo " | <a href='$url'><img src='../Next.gif' width='25' height='25' border='0'></a> </font>";   }
por isso :

 

for($i=0;$i<$paginas;$i++) { // Gera um loop com o link para as páginas   $url = "?em=descricao&medico=$medico&pagina=$i";   echo "<FONT FACE='$fonte'><FONT SIZE=-2> | <a href='$url'>$i</a>";}if($pagina < ($paginas - 1)) {   $mais = $pagina + 1;   $url = "?em=descricao&medico=$medico&pagina=$mais";   echo " | <a href='$url'><img src='../Next.gif' width='25' height='25' border='0'></a> </font>";   }
Note que eu citei acima para substituir a variavel $med para --> $medico http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Um dos principais fatores de não funcionar corretamente está ai, pois, você definiu um nome de variavel e utilizou outro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao ta de lasca isso fiz assim como falou e nada mesmo erro na outra pag. nao aparece nada

 

 

include("../../../Apache2/htdocs/sitepaulista(novo)/Connections/conexao.php"); //Conecta com o banco de dados MySQL$medico		=	isset($_POST['medico']) ? $_POST['medico'] : $_GET['medico'];if($medico != ""){$resultadospg=1; //resultado por pagina// Realiza busca no banco de dados.$busca = mysql_query("SELECT medicos.*, especialidades.* from (medico_especialidades INNER JOIN medicos ON medico_especialidades.id_medico = medicos.id_medico)INNER JOIN especialidades ON medico_especialidades.id_especialidades = especialidades.id_especialidades WHERE medicos.medico LIKE '$medico%' Order by medicos.medico") or print (mysql_error());$lpp = $resultadospg; // Especifique quantos resultados você quer por página$total = mysql_num_rows($busca); // Esta função irá retornar o total de linhas na tabela$paginas = ceil($total / $lpp); // Retorna o total de páginas$pagina	=	isset($_GET['pagina']) ? $_GET['pagina'] : 0; /* Pega a pagina atual, caso não seja definida, sera 0 */ // Especifica uma valor para variavel pagina caso a mesma não esteja setada$inicio = $pagina * $lpp; // Retorna qual será a primeira linha a ser mostrada no MySQL$buscar = mysql_query("SELECT medicos.*, especialidades.* from (medico_especialidades INNER JOIN medicos ON medico_especialidades.id_medico = medicos.id_medico)INNER JOIN especialidades ON medico_especialidades.id_especialidades = especialidades.id_especialidades WHERE medicos.medico LIKE '$medico%' Order by medicos.medico LIMIT $inicio, $lpp"); // Executa a query no MySQL com o limite de linhas.echo"<FONT FACE='$fonte'><FONT SIZE=1><b>Buscar</b></font><FONT FACE='$fonte'><FONT SIZE=2><br>A palavra procurada foi: <b>$medico</b><BR>Retornou <font color='#FF0000'>$total</font> registro(s)<br><br>";echo"<table width='102%' border='1' align='center' cellpadding='4' cellspacing='0' bordercolor='#DBDBDB'>   <tr>	<td bgcolor='#92A4C2'><font color='#FFFFFF'><b>Médico</b></font></td>	<td bgcolor='#92A4C2'><font color='#FFFFFF'><b>Especialidades</b></font></td>	<td bgcolor='#92A4C2'><font color='#FFFFFF'><b>Horário de Atendimento</b></font></td>     </tr>";while($linha = mysql_fetch_array($buscar)){$id = $linha["id"];$medico = $linha["medico"];$especialidades = $linha["especialidades"];$desc_atend  = $linha["desc_atend"];if ($cor == '#D9D9D9')	$cor = '#EAEAEA';else $cor = '#D9D9D9';echo"  <tr bgcolor='$cor'>	<td width='26%' class='descricao'>$medico</td>	<td width='25%' class='descricao'>$especialidades</td>   	<td width='33%' class='descricao'>$desc_atend</td>   </tr>";}echo"</table><br>";// Mosta as opções Anterior, número das páginas e Próxima página.if($pagina > 0) {   $menos = $pagina - 1;   $url = "?em=descricao&medico=$medico&pagina=$menos";   echo "<FONT FACE='$fonte'><FONT SIZE=-2><a href='$url'><img src='../Previous.gif' width='25' height='25' border='0'></a>"; // Vai para a página anterior}for($i=0;$i<$paginas;$i++) { // Gera um loop com o link para as páginas   $url = "?em=descricao&medico=$medico&pagina=$i";   echo "<FONT FACE='$fonte'><FONT SIZE=-2> | <a href='$url'>$i</a>";}if($pagina < ($paginas - 1)) {   $mais = $pagina + 1;   $url = "?em=descricao&medico=$medico&pagina=$mais";   echo " | <a href='$url'><img src='../Next.gif' width='25' height='25' border='0'></a> </font>";   }// Caso não haja nenhum resultado da busca.$total2 = mysql_num_rows($busca);if($total2 == 0){echo"<BR>Nenhum resultado foi encontrado com:<BR><BR><b>$medico<BR><BR><font color='#FF0000'><b>Tente novamente utilizando outros valores.</b></font></b><BR><BR><a href='java script:history.go(-1)'>«« Voltar</a>";}}mysql_close($conn);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem eu fiz o teste do codigo da paginação em si (só a programação) não testei o BD.

 

Eu uso assim a paginação ( Exemplo pra você ver como calcula o offset )

 

<?php	## Abre o banco de dados	$classe 		=& 	Singleton::factory( "DB" );						// cria a estancia de 1 objeto de conexao DB	/*	 * Numero de registros por pagina a ser exibido	 */	$entries_per_page	=	20;	/*	 * Define ou pega a pagina atual	 */	$page 				= 	isset($_REQUEST['page']) ? (int)normaliza( $_REQUEST['page'] ) : 1;	/*	 * Verifica a quantidade registros que a consulta SQL vai retornar	 */	$resultadoSQL 		=	$classe->Executar("SELECT COUNT(*) as linhas FROM tblusers");	$obj 				= 	$resultadoSQL->fetch_object();	$num_rows			=	$obj->linhas;	/*	 * Calcula o off set ( pagina atual * resultado por pagina ) - resultado por pagina	 * Ex: pagina 10 com 20 registros por pagina	 * 		10 * 20 - 20 = 180	 * $offset = 180 - > inicia mostrando os registros a partir do nr 180 	 */ 				(int)$offset 			=  (($page * $entries_per_page) - $entries_per_page);	/*	  * obtem os resultdos com os limites	  * inicia no registro 180 (ate o 200 - 20 por pagina)	  */	$resultadoSQL			= 	$classe->Executar("SELECT * FROM tblusers ORDER BY 'nome_do_usuario' LIMIT $offset,$entries_per_page");	## Fecha o banco de dados	$classe->Fechar();	 // --> Chama a função de paginacao aqui	paginacao( $entries_per_page, $num_rows, 9, $page, $complemento );	?>

Se quise eu posto os arquivos da paginação

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao fiz dessa outra forma e quando clico pra ir pra prox nao aparece registro nenhum nao sei q pode ser

 

$medico = $_POST["medico"];if(empty($medico)) {echo "<b>Nenhum</b> resultado encontrado na pesquisa";exit;}//No caso buscaremos pelo titulo$sql = mysql_query("SELECT medicos.*, especialidades.* from (medico_especialidades INNER JOIN medicos ON medico_especialidades.id_medico = medicos.id_medico)INNER JOIN especialidades ON medico_especialidades.id_especialidades = especialidades.id_especialidades WHERE medicos.medico LIKE '$medico%' Order by medicos.medico");$pag = $_POST["pag"];$lpp = 1;$total = mysql_num_rows($sql);$num = ceil($total / $lpp);if($pag == "") $pag = 1;$inicio = ($pag * $lpp) - $lpp;$sql = mysql_query("SELECT medicos.*, especialidades.* from (medico_especialidades INNER JOIN medicos ON medico_especialidades.id_medico = medicos.id_medico)INNER JOIN especialidades ON medico_especialidades.id_especialidades = especialidades.id_especialidades WHERE medicos.medico LIKE '$medico%' Order by medicos.medico LIMIT $inicio, $lpp");$total = mysql_num_rows($sql);if($total==1) $res = "resultado";else $res = "resultados";//se não foi encontrado nada mostraif($total==0) {echo "<b>Nenhum</b> resultado encontrado na pesquisa para <b>$q</b>";}$cont = "1";while($l = mysql_fetch_array($sql)) {$titulo = $l["medico"];echo "$cont. $titulo<br>";$cont++;}//Agora a páginaçãoif($total>0) {if($pag - 1) {$menos = $pag - 1;$url = "?q=$q&pag=$menos";echo "<a href=\"$url\">Anterior</a>";}else {echo "<b>Anterior</b>";}for($i=1;$i<=$num; $i++) {$url = "?q=$q&pag=$i";if($pag==$i) {echo " | <b>$i</b>";}else {echo " | <a href=\"$url\">$i</a>";}}if($pag!=$num) {$mais = $pag + 1;$url = "?q=$q&pag=$mais";echo " | <a href=\"$url\">Próxima</a>";}else {echo " | <b>Próxima</b>";}}

Compartilhar este post


Link para o post
Compartilhar em outros sites

e ai pessoal ninguem

Tenha certeza que os dados estão sendo enviados quando você muda de página!veja esse tópico como exemplo:http://forum.imasters.com.br/index.php?sho...mp;hl=paginação

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao ultima cartada fiz assim quando digito "a" por exemplo ele aparece os registros pagina 1 2 quando clico na pagina 2 ele exibe tudo do banco

link p/ voces testarem

 

http://www.hospitalpaulista.com.br/corpo_clinico.php digite a ex:

 

[b]$palavra = $_POST["palavra"];ECHO"<FONT FACE='$fonte'><FONT SIZE=-1><b>Buscar</b></font><FONT FACE='$fonte'><FONT SIZE=-2><br>A palavra procurada foi: <b>$palavra</b><BR><br>";$resultadospg=2;// Realiza bus;ca no banco de dados.$busca = mysql_query("SELECT medicos.*, especialidades.* from (medico_especialidades INNER JOIN medicos ON medico_especialidades.id_medico = medicos.id_medico)INNER JOIN especialidades ON medico_especialidades.id_especialidades = especialidades.id_especialidades WHERE medicos.medico LIKE '$palavra%' Order by medicos.medico") or print (mysql_error());$lpp = $resultadospg; // Especifique quantos resultados você quer por página$total = mysql_num_rows($busca); // Esta função irá retornar o total de linhas na tabela$paginas = ceil($total / $lpp); // Retorna o total de páginasif(!isset($pagina)) { $pagina = 0; } // Especifica uma valor para variavel pagina caso a mesma não esteja setada$inicio = $pagina * $lpp; // Retorna qual será a primeira linha a ser mostrada no MySQL$buscar = mysql_query("SELECT medicos.*, especialidades.* from (medico_especialidades INNER JOIN medicos ON medico_especialidades.id_medico = medicos.id_medico)INNER JOIN especialidades ON medico_especialidades.id_especialidades = especialidades.id_especialidades WHERE medicos.medico LIKE '$palavra%' Order by medicos.medico LIMIT $inicio, $lpp"); // Executa a query no MySQL com o limite de linhas.while($linha = mysql_fetch_array($buscar)){$id = $linha["id"];$nomesite = $linha["medico"];if($notas >= 1 or $votos >= 1){$mediat = ($notas/$votos);$tamanho = strlen($mediat);$quantidade = "4";if($tamanho <= $quantidade){$media = substr_replace($mediat, " ", $quantidade, $tamanho - $quantidade);}}else{$media = $notas;}echo" <a href='click.php?acao=visitar&id=$id' target='_blank'><b>$nomesite</b></a>: $descricao<br><font color='#909090'>Categoria: <a href='categorias.php?vercat=$categoria'><font color='#909090'>$categoria</a> | Adicionado em: $diacad/$mescad/$anocad<BR>Cliques: $cliques | Média de votos: $media |<a href='votar.php?idsite=$id'><font color='#909090'>Votar neste Site</a><BR> ";if($nivelbusca == 2){echo"<b><a href='modificarsite.php?id=$id'>Modificar</a> | <a href='deletarsite.php?acao=deletar&ida=$id'>Deletar</a></b><BR>";}echo"<BR></font></font></font>";}// Mosta as opções Anterior, número das páginas e Próxima página.if($pagina > 0) {   $menos = $pagina - 1;   $url = "?em=descricao&palavra=$palavra&pagina=$menos";   echo "<FONT FACE='$fonte'><FONT SIZE=-2><a href='$url'>Anterior</a>"; // Vai para a página anterior}for($i=0;$i<$paginas;$i++) { // Gera um loop com o link para as páginas   $url = "?em=descricao&palavra=$palavra&pagina=$i";   echo "<FONT FACE='$fonte'><FONT SIZE=-2> | <a href='$url'>$i</a> ";}if($pagina < ($paginas - 1)) {   $mais = $pagina + 1;   $url = "?em=descricao&palavra=$palavra&pagina=$mais";   echo " | <a href='$url'>Próxima</a> </font>";   }// Caso não haja nenhum resultado da busca.$total2 = mysql_num_rows($busca);if($total2 == 0){echo"<BR>Nenhum resultado foi encontrado com:<BR><BR><b>$palavra<BR><BR><font color='#FF0000'><b>Tente novamente utilizando outros valores.</b></font></b><BR><BR><a href='java script:history.go(-1)'>«« Voltar</a>";}mysql_free_result($busca);if($palavra == ""){echo" <FONT FACE='$fonte'><FONT SIZE=-1><b>Buscar</b></font></font><BR><br><FONT FACE='$fonte'><FONT SIZE=-2><font color='#FF0000'><b>Erro na busca:</b></font> É necessário digitar uma palavra para realizar uma busca.<BR><BR><a href='java script:history.go(-1)'>«« Voltar</a>";}[/b]

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.