Ir para conteúdo

POWERED BY:

Arquivado

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

Mariana Silvestre

Paginação usando tabela.

Recommended Posts

Oi.Tudo bem Galera?Peguei um serviço para fazer para uma professora na minha facul, que é mais ou menos deste modo:A idéia é ter uma paginação de 50 (+/-) resultados em cada página. Mas para os dados não formarem uma barra de rolagem enorme, gostaria de que esses dados - textos ou imagens - fossem colocados em 10 colunas e 5 linhas, logo 10 x 5 = 50.A paginação até coneigui resolver. Mas interagir a lógica usando uma tabela para fazerem as colunas e linhas com os resultados não.Será que é possível alguém me ajudar?Pra não passar batido, meu estudo em php "ainda" é de pouco conhecimento. Obrigado, e bom final de semana para todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como você fez a exibição das linhas ? Posta ai o código que pega os resultados e exibem eles.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi, obrigada pela atenção.

 

Este código adaptei de um que achei na minha pesquisa pela internet.

 

<? 				  $host = "localhost"; $user = "mariphp"; $pass = "phpmari"; $db_nome = "php"; $link = mysql_connect ($host, $user, $pass); $query = "SELECT * FROM material order by id desc"; $result = mysql_db_query ($db_nome, $query, $link) or die ("Conexão falhou!"); 				$num = mysql_num_rows($result); $total_reg = 50; mysql_close($link); if ($num <= $total_reg) { 	$total_paginas = 1; } 			if ($num%$total_reg == 0) { 	$total_paginas = $num / $total_reg; } else { 	$total_paginas = ($num/$total_reg) - (($num%$total_reg)/$total_reg) + 1; } $linha_inicial = ($pagina - 1) * $total_reg; $linha_final = $linha_inicial + $total_reg - 1;    $marcador = 0; while ($array_result = mysql_fetch_array($result)) { 	if ($marcador >= $linha_inicial and $marcador <= $linha_final) { 		$cod		= $array_result["cod"]; 		$m01 		= $array_result["m01"]; 				// AQUI QUE NO CASO EU COLOCARIA A TABELA !!!				} 	$marcador = $marcador + 1; } if ($pagina == 1) { 	echo ""; } else { 	echo "<a href=\"material.php?pagina=".($pagina - 1)."\" target=\"_self\" class=\"texto4\">anterior </a>"; } $i = 1; while ($i <= $total_paginas) { 	if ($i == $pagina) { 		echo ""; 	} 		else { 		echo ""; 	} 	$i = $i + 1;  } 			  if ($pagina == $total_paginas) { 	echo ""; } else { 	echo "<a href=\"material.php?pagina=".($pagina + 1)."\" target=\"_self\" class=\"texto4\"> próxima</a>"; } ?>

Se puder/puderam me ajudar nesse caso.

 

Grata!

Compartilhar este post


Link para o post
Compartilhar em outros sites

echo "<tr>\n <td>{$array_result["cod"]}</td>\n <td>{$array_result["m01"]}</td>\n </tr>\n";

Seria isto ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Márcio não.Assim.tenho um campo na tabela material (m01) ... na tabela já existem 150 resultados.Quero listar esses resultados do m1 em 10 colunas e 2 linhas (20 resultados por página)página 0101 02 03 04 05 06 07 08 09 1011 12 13 14 15 16 17 18 19 20anterior próximapágina 0221 22 23 24 25 26 27 28 29 3031 32 33 34 35 36 37 38 39 40anterior próxima...Poderia me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim,fiz uma escala básica para mostrar os dados da tabela: for ($i = 1; $i <= 3; $i++) { echo "<tr>"; for ($x = 1; $x <= 2; $x++) { echo "<td>" . $materia. "</td>"; } echo "</tr>";}3 linhas e 2 duas colunas.Ele repete a matéria na mesma linha, assim:A AB BC CEu não tenho idéia de usar desta maneira (sem repetição):A BC DE F Eu li as regras do fórum, e sei que "pedir ajuda" num modo tão pedinte não condiz com as regras, mas é que preciso achar um jeito para isso e não sei.Grata até o momento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tmferreira, muito obrigado pelas dicas.assim,fora do script de paginação funcionou legal, implantei mais algumas coisa e esta beleza.paginá do jeito que eu queria.agora incorporando ele naquela parte junto ao código da página ele dá esse erro:Parse error: syntax error, unexpected $end in /home/restricted/home/analucia/public_html/test/materia.php on line 178Essa linha 178 é: echo "<div align=\"right\"><a href=\"materia.php?pagina=".($pagina - 1)."\" target=\"_self\" class=\"texto4\">voltar </a></div>"; O que pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esta assim:

<? 				  $host = "localhost"; $user = "mariphp"; $pass = "phpmari"; $db_nome = "php"; $link = mysql_connect ($host, $user, $pass); $query = "SELECT material FROM material order by id desc"; $result = mysql_db_query ($db_nome, $query, $link) or die ("Conexão falhou!"); 				$num = mysql_num_rows($result); $total_reg = 50; mysql_close($link); if ($num <= $total_reg) { 	$total_paginas = 1; } 			if ($num%$total_reg == 0) { 	$total_paginas = $num / $total_reg; } else { 	$total_paginas = ($num/$total_reg) - (($num%$total_reg)/$total_reg) + 1; } $linha_inicial = ($pagina - 1) * $total_reg; $linha_final = $linha_inicial + $total_reg - 1;    $marcador = 0; while ($array_result = mysql_fetch_array($result)) { $id		 = $array_result["id"]; $materia = $array_result["materia"]; 				for ($i = 1; $i <= 2; $i++) {  echo "<tr>";  for ($x = 1; $x <= 10; $x++) {	$array_result = mysql_fetch_array($result);	echo "<td>" . $array_result['materia'] . "</td>";  }  echo "</tr>";}	$marcador = $marcador + 1; } if ($pagina == 1) { 	echo ""; } else { 	echo "<a href=\"material.php?pagina=".($pagina - 1)."\" target=\"_self\" class=\"texto4\">anterior </a>"; } $i = 1; while ($i <= $total_paginas) { 	if ($i == $pagina) { 		echo ""; 	} 		else { 		echo ""; 	} 	$i = $i + 1;  } 			  if ($pagina == $total_paginas) { 	echo ""; } else { 	echo "<a href=\"material.php?pagina=".($pagina + 1)."\" target=\"_self\" class=\"texto4\"> próxima</a>"; } ?>

 

Obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Arrumei o erro da linha 178, era uma "}" que faltava fechar.

 

Abaixo o código, e esta paginando errado.

 

<? 				  $host = "localhost"; $user = "mariphp"; $pass = "phpmari"; $db_nome = "php"; $link = mysql_connect ($host, $user, $pass); $query = "SELECT material FROM material order by id"; $result = mysql_db_query ($db_nome, $query, $link) or die ("Conexão falhou!"); 				$num = mysql_num_rows($result); $total_reg = 9; mysql_close($link); if ($num <= $total_reg) { 	$total_paginas = 1; } 			if ($num%$total_reg == 0) { 	$total_paginas = $num / $total_reg; } else { 	$total_paginas = ($num/$total_reg) - (($num%$total_reg)/$total_reg) + 1; } $linha_inicial = ($pagina - 1) * $total_reg; $linha_final = $linha_inicial + $total_reg - 1;    $marcador = 0; while ($array_result = mysql_fetch_array($result)) {   for ($i = 1; $i <= 3; $i++) {	echo "<tr>";  for ($x = 1; $x <= 3; $x++) {	$array_result = mysql_fetch_array($result);	  echo "<td>" . $array_result['material'] . "</td>";   }	echo "</tr>";  }}   	$marcador = $marcador + 1; } if ($pagina == 1) { 	echo ""; } else { 	echo "<a href=\"material.php?pagina=".($pagina - 1)."\" target=\"_self\" class=\"texto4\">anterior </a>"; } $i = 1; while ($i <= $total_paginas) { 	if ($i == $pagina) { 		echo ""; 	} 		else { 		echo ""; 	} 	$i = $i + 1;  } 			  if ($pagina == $total_paginas) { 	echo ""; } else { 	echo "<a href=\"material.php?pagina=".($pagina + 1)."\" target=\"_self\" class=\"texto4\"> próxima</a>"; } ?>

O resultado de paginação sai desta forma (com 15 registros na tabela)

 

página 1

B C D

E F G

H I J

M N O

P

próxima >

 

 

 

pagina 2

L M N

O P

< anterior

 

 

Nota-se, que o A não aparece, o L não aparece na página 1 e vai somente aparecer na página 2. E o estranho é q na primeira página não respeita 3 linhas e 3 colunas.

 

Nossa, tô perdida !!! ... :wacko:

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.