Ir para conteúdo

POWERED BY:

Arquivado

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

Michel Renato

Links = Paginas

Recommended Posts

Caros amigos peguei um codigo aki desenvolvido pelo amigo tmferreira so que to com uma duvida e gostaria q vcs me ajudassem.......

Qdo faço a consulta gostaria q o numero de links seja o mesmo que o numero de pagina.

Por exemplo se tenho uma pagina que apareça comente o nº 1 e assim por diante......

O topico q peguei o codigo é esse: http://forum.imasters.com.br/index.php?showtopic=186728

Obrigado..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos sabem q reparei q se o tiver bastante registros ele fica certinho agora se estiver pouco ele da a qtde de links especifica so q negativo....Como rsolver isso??O codigo é esse:<? function paginacao($sql, $qtde_campos, $qtde_pag, $titulos, $titulosProp, $linhas, $linhasProp, $linhaAlternada, $tabelaProp, $linksProp, $rangePag) { //VERIFICA EM QUAL PÁGINA ESTÁ if (isset($_GET['pagina'])) { $pagina = $_GET['pagina']; $limite_inf = ($pagina - 1) * $qtde_pag; } else { $pagina = 1; $limite_inf = 0; } //IMPRESSÃO DO CABEÇALHO DA TABELA echo "<TABLE " . $tabelaProp . ">\n"; //QTDE DE LINHAS DA CONSULTA conecta(); $resp = mysql_query($sql); desconecta(); $qtde_total = mysql_num_rows($resp); //QTDE DE PÁGINAS DA CONSULTA $qtde_mod = $qtde_total % $qtde_pag; $qtde_pags = intval(($qtde_total - $qtde_mod) / $qtde_pag); if ($qtde_mod > 0) $qtde_pags++; //IMPRIME OS TÍTULOS $qtde_titulos = count($titulos); $titulo = "<TR>\n"; for($i=0;$i<$qtde_titulos;$i++) { $titulo .= "<TD " . $titulosProp . " " . $titulos[$i][1] . ">" . $titulos[$i][0] . "</TD>\n"; } $titulo .= "</TR>\n"; echo $titulo; //IMPRIME OS RESULTADOS $sql_exec = $sql . " limit $limite_inf, $qtde_pag"; conecta(); $resp = mysql_query($sql_exec); desconecta(); $qtde_reg = mysql_num_rows($resp); for($x=0;$x<$qtde_reg;$x++) { if ($x % 2 != 0) $dif = $linhaAlternada; else $dif = ""; $campos = mysql_fetch_row($resp); $linha = "<TR>\n"; for($j=0;$j<$qtde_campos;$j++) { $linha .= "<TD " . $linhas[$j] . " " . $dif . $linhasProp . ">" . $campos[$j] . "</TD>\n"; } $linha .= "</TR>\n"; echo $linha; } //IMPRIME OS LINKS PARA OUTRAS PÁGINAS $primeiraPag = $paginAa - (intval(($rangePag - ($rangePag % 2)) / 2)); if ($primeiraPag <= 0) $primeiraPag = 1; $ultimaPag = $primeiraPag + $rangePag; if ($ultimaPag > $qtde_pags) { $ultimaPag = $qtde_pags; $primeiraPag = $ultimaPag - $rangePag; } $links = "<TR>\n<TD " . $linhasProp . " " . $linksProp[1] . " colspan=\"" . $qtde_campos . "\">\n"; $links .= "<A " . $linksProp[0] . " href=\"" . $PHP_SELF . "?pagina=1\"> [Primeira]</A>\n"; for($i=$primeiraPag;$i<$ultimaPag;$i++) { if ($pagina == $i) $links .= - "$i\n"; else $links .= "- <A " . $linksProp[0] . " href=\"" . $PHP_SELF . "?pagina=$i\">[$i]</A>\n"; } $links .= "<A " . $linksProp[0] . " href=\"" . $PHP_SELF . "?pagina=$qtde_pags\"> - [Última] </A>\n"; $links .= "</TD>\n</TR>\n"; echo $links; echo "</TABLE>\n"; }?>Como Resolver isso???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado amigo funcinou certinho.....mas estou com outra duvida se você puder me dar uma ajuda de novo.O q acontece é o seguinte essa é minha consulta:Qdo faço a consulta gostaria q um dos campos fosse o link pra a edição do cadastro, tipo assim o código fosse o link para abrir outra pagina para q o user possa fazer alterações, edições....Valeu Amigos....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Blzs amigos, a gente que sofre mas acaba apreendendo, consegui colocar o link certinho..obrigado a todos...So uma curiosidade pq se eu usar pra fazer a consulta com o mysql_query da erro na paginação???So pra entender essa duvida beleza...AbraçosT+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se minha consulta tiver dessa forma:

$result=mysql_query("SELECT * FROM tb_banco WHERE ($campo like '$valor')");

ai da erro

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\web\vidaflora\PG\paginacao.php on line 36

 

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\web\vidaflora\PG\paginacao.php on line 63

 

mas beleza ja resolvi, so fiquei curioso....

 

Abraços..........

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal hein.....Amigo deixa eu tirar mais uma duvida...Tem como eu determionar nesse codigo seu, quais os campos da tabela apareceram???Tipo assim nao exibir na sequencia da tabela e sim em uma sequencia q eu determinar???Valeu mesmoMichel

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza então!

 

Se você fizer:

$sql = "SELECT * FROM tb_banco WHERE (" . $campo . " like '" . $valor "')";$result = mysql_query($sql);
dá certo!
Assim, dessa forma, creio que o erro ira continuar ...

e pior, isso ira gerar um parse error devido ao "."(ponto) que faltou depois do valor: ... WHERE (" . $campo . " like '" . $valor ."')";

 

O interessante, é você debugar esta consulta, antes dessa linha, da um

 

print "SELECT * FROM tb_banco WHERE (" . $campo . " like '" . $valor . "')";

 

E antes de postar no forum, abra algum SGBD que você tenha ae, e execute a consulta exibida ...

 

caso a dúvida continue, poste no forum novamente !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok obrigado pela dica......valeuMas como eu determino nesse codigo , quais os campos da tabela apareceram???Tipo assim nao exibir na sequencia da tabela e sim em uma sequencia q eu determinar???Valeu mesmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado.....amigos mais uma perguntinha......Tenho varias paginas q necessitam de paginação, para cada pagina de resultado que tenho preciso de uma pagina de paginação ou tem como fazer uma pra todas utilizando aluguma função tipo swith???Ou nao tem jeito tem q ser uma paginação pra cada pagina???Michel

Compartilhar este post


Link para o post
Compartilhar em outros sites

Naquela sua função amigo, eu paço uma variavel q identifica a pagina, e na paginação coloquei em um swthi, posso usar essa função?Bom o q aconteceu foi o seguinte, na primeira chamada apareçe tdo certinho ficou joinha, mas qdo chamo a segunda pagina ai da pau, so nao da erro mas tbem nao apareçe os registros, to usando função errada???ou nao tem jeito faço uma pra cada mesmo.....Michel

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu coloquei esse swthi aki no codigo do imasters, mas como disse na primeira chamada funciona, mas na segunda pagina da pau, nao apareçe nada, ai vai o codigo pra a ajuda dos colegas:

<?// faz a conecção com o banco de dadosfunction conecta()	{		$link = mysql_connect("localhost", "root", "") or die("Erro na Conexão com o Banco de Dados: " . mysql_error());		$con = mysql_select_db("db_vida");	}	function desconecta()	{		$con = mysql_close();	}//-----------------------------------------**************-------------------------------------------------------		//função da paginação	  	  function paginacao($sql, $qtde_campos, $qtde_pag, $titulos, $titulosProp, $linhas, $linhasProp, $linhaAlternada, $tabelaProp, $linksProp, $rangePag, $form, $preventiva)	{//---------------------------------------*************------------------------------------------------------------		//VERIFICA EM QUAL PÁGINA ESTÁ		if (isset($_GET['pagina']))		{			$pagina = $_GET['pagina'];			$limite_inf = ($pagina - 1) * $qtde_pag;		}		else		{			$pagina = 1;			$limite_inf = 0;		}//---------------------------------------*************------------------------------------------------------------		//IMPRESSÃO DO CABEÇALHO DA TABELA		echo "<TABLE " . $tabelaProp . ">\n";//---------------------------------------*************------------------------------------------------------------		//QTDE DE LINHAS DA CONSULTA		conecta();		$resp = mysql_query($sql);		desconecta();		$qtde_total = mysql_num_rows($resp);//---------------------------------------*************------------------------------------------------------------		//QTDE DE PÁGINAS DA CONSULTA		$qtde_mod = $qtde_total % $qtde_pag;		$qtde_pags = intval(($qtde_total - $qtde_mod) / $qtde_pag);		if ($qtde_mod > 0)			$qtde_pags++;//---------------------------------------*************------------------------------------------------------------		//IMPRIME OS TÍTULOS		$qtde_titulos = count($titulos);		$titulo = "<TR>\n";		for($i=0;$i<$qtde_titulos;$i++)		{		   $titulo .= "<TD " . $titulosProp . " " . $titulos[$i][1] . ">" . $titulos[$i][0] . "</TD>\n";					}		$titulo .= "</TR>\n";		echo $titulo;//---------------------------------------*************------------------------------------------------------------		//IMPRIME OS RESULTADOS				 $sql_exec = $sql . " limit $limite_inf, $qtde_pag";				 conecta();				 $resp = mysql_query($sql_exec);				 desconecta();				 $qtde_reg = mysql_num_rows($resp);				 for($x=0;$x<$qtde_reg;$x++)				{				  if ($x % 2 != 0)				   $dif = $linhaAlternada;				 else				  $dif = "";				  $campos = mysql_fetch_row($resp);				  $linha = "<TR>\n";				  for($j=0;$j<$qtde_campos;$j++)				 {			switch ($form) { 			  // agencias bancarias			   case "banco":				  $t="<a href=cad_banco.php?id=$campos[0]&pesq=4>$campos[$j]</a>";				  			  break;  			  // Categoria de Equipamentos			   case "categoriaequip":				  $t="<a href=cad_categ.php?id=$campos[0]&pesq=4>$campos[$j]</a>";				  			   break;   			  // Clientes 			  case "clientes":				  $t="<a href=cad_cli.php?codcli=$campos[0]&pesq=4>$campos[$j]</a>";				 			 break;  			 // Equipamentos			   case "equipamentos":			   	  if ($preventiva==nao){				  $t="<a href=cad_equip.php?codequip=$campos[0]&pesq=4>$campos[$j]</a>"; 				  }				 else if ($preventiva==sim){						  $t="<a href=../manutencao/mostra_ficha_prev.php?codequip=$campos[0]&pesq=0>$campos[$j]</a>";		}						break;  		  }		}	 			  				  $linha .= "<TD ". $linhas[$j] . "" . $dif . $linhasProp .">". $t. "</TD>\n";				  $linha .= "</TR>\n";				   echo $linha;				   }		 //---------------------------------------*************------------------------------------------------------------		//IMPRIME OS LINKS PARA OUTRAS PÁGINAS		 $primeiraPag = $pagina - (intval(($rangePag - ($rangePag % 2)) / 2));		if ($primeiraPag <= 0)			$primeiraPag = 1;		$ultimaPag = $primeiraPag + $rangePag;				// verifica se tiver mais pags imprime os links		if ($ultimaPag > $qtde_pags)		{			$ultimaPag = $qtde_pags;			$primeiraPag = $ultimaPag - $rangePag;		}								$links = "<TR>\n<TD " . $linhasProp . " " . $linksProp[1] . " colspan=\"" . $qtde_campos . "\">\n";		$links .= "<A " . $linksProp[0] . "	href=\"" . $PHP_SELF . "?pagina=1\"> [Primeira]</A>\n";		for($i=$primeiraPag;$i<$ultimaPag;$i++)		{			if ($pagina == $i)				$links .= - "$i\n";			else				$links .= "- <A " . $linksProp[0] . " href=\"" . $PHP_SELF . "?pagina=$i\">[$i]</A>\n";		}		$links .= "<A " . $linksProp[0] . "	href=\"" . $PHP_SELF . "?pagina=$qtde_pags\"> - [Última] </A>\n";		$links .= "</TD>\n</TR>\n";		echo $links;				echo "</TABLE>\n";	}?>
A variavel q passo é o "form" e a variavel preventiva so uso pra um formulario q é o de manutenção.

 

Obrigado

 

Michel Renato

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.