Jump to content
NunoDinis

Paginação com array

Recommended Posts

NunoDinis

Boa tarde,

Estou a fazer uma paginação através de um array que está a funcionar bem, mas não consigo pôr a funcionar quando os registos estão na tabela (que provêm de uma pesquisa).

<?php
$result = $client->ZrrWsComunicaArquivo($params);
foreach ($result->OutGestArquivo->item as $row) {
 $arr[]=$row->Artigo;
?>
<table style="width: 50%" cellspacing="1" class="style1">
 <tr>
<td><?PHP echo $row->Artigo; ?></td>
<td class="style2"><?PHP echo $Matriz[0][1]; ?></td>
  </tr>
</table>
<?PHP
}

//FUNÇÕES DE PAGINAÇÃO
//O erro estará aqui, na forma como estou a relacionar este trecho com o "desenho" da tabela.
$RegistrosPorPagina = 5;
 if (!isset($_GET["PaginaAtual"])) {
 $PaginaAtual = 1;
  } else {
  $PaginaAtual = $_GET["PaginaAtual"]; }
  $TotalDeRegistros = (count($arr) - 1);
  $TotalDePaginas = ceil($TotalDeRegistros/$RegistrosPorPagina);
  $PrimeiroRegistro = (($PaginaAtual * $RegistrosPorPagina) - $RegistrosPorPagina);

 function CriarLinks ($TotalDePaginas)
   {
	  $link = '';
	  for ($i = 1; $i <= $TotalDePaginas; $i++)
	  { $link .= ' <a href="exemploTabela.php?PaginaAtual='.$i.'">'.$i.'</a> |'; }
	  return $link;
   }

  for ($i = $PrimeiroRegistro; $i < ($RegistrosPorPagina + $PrimeiroRegistro); $i++)
   {
	  if(isset($arr[$i]))  {  
				echo $arr[$i].'<br>'; }
   }
	echo CriarLinks($TotalDePaginas);
	return $result;
      }
func1();
?>

O que será que tenho que mudar ?

Edited by NunoDinis

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Share this post


Link to post
Share on other sites
NunoDinis

Desculpa, isto depois de copiado do NotePad nunca fica lá muito bem.

Dei um jeito.. acho que dá para perceber melhor!


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Share this post


Link to post
Share on other sites
NunoDinis

Aparece-me a tabela preenchida com algumas valores. Aqui tudo bem...

E em baixo da tabela aparece a paginação a funcionar perfeitamente, mas sem estar interligada com a tabela.


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Share this post


Link to post
Share on other sites
NunoDinis

Imaginemos que a tabela tem 18 registos, quero que mostre apenas 9. Se carregar para a página dois, quero que me apareceram os outros 9 registos... E por aí fora. Percebes ?

Uma navegação.. eu tenho em mysql, mas no projeto que estou a trabalhar vem tudo por arrays.


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Share this post


Link to post
Share on other sites
HappyHippyHippo

sem a especificação do pedido é impossível saber se é mesmo possível sequer ...

mas se não for possível terás de apresentar somente os registos do array correspondentes da "página" a ser visualizada


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
NunoDinis
sem a especificação do pedido é impossível saber se é mesmo possível sequer ...

Como assim ?

Edited by NunoDinis

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Share this post


Link to post
Share on other sites
HappyHippyHippo

não faço ideia se é possível filtrar o pedido por início da lista e número máximo de registos, algo que nunca disseste se é possível fazer ou não ....


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
NunoDinis

Acho que ainda não me entendeste..

O código dá, e já consigo navegar entre páginas com os valores que o software filtra, através dos arrays.

Apenas não estou a conseguir fazer o mesmo processo, com o registo em linhas da tabela. Estás a entender ?


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Share this post


Link to post
Share on other sites
NunoDinis

Imaginemos que a pesquisa retorna 4 valores : TC1,TC2,TC3 e TC4

O que o software está a fazer é criar uma linha para cada registo na tabela, ficando assim:

//TABELA
Linha 1- TC1
Linh1 2- TC2
Linh1 3- TC3
Linh1 4- TC4

Vamos supor que eu quero mostrar dois registos em cada "pagina", ficaria:

Linha 1- TC1

Linh1 2- TC2

em baixo teria a navegação para ir para a proxima pagina, que retornaria:

Linha 4- TC3
Linh1 4- TC4


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Share this post


Link to post
Share on other sites
HappyHippyHippo

mas se não for possível terás de apresentar somente os registos do array correspondentes da "página" a ser visualizada

já te tinha dito, terás de filtrar o que pretendes amostrar


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
HappyHippyHippo
$reg_por_pag;
$pag;

for ($i = $reg_por_pag * $pag; $i < $reg_por_pag * ($pag + 1); $i++)
{
 show_reg($list, $i);
}


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.