Ir para conteúdo
Fórum Script Brasil
  • 0

Paginação... Tentei Mas Não Consegui...


REALMISTERMIX

Pergunta

Olá pessoal. Estou tentando paginar um arquivo mas não estou conseguindo. Peguei um script aqui no fórum, que está funcionando, ele cria uma paginação mas repete todos os resultados.

Alguém pode me ajudar a localizar este erro? Vou postar o que fiz abaixo, se alguém puder me dizer o que está errado eu agradeço, pois já teste alguns outros mas não deu certo.

<?

$declar = "SELECT * FROM legals_invoices";

$total_reg = "10"; // número de registros por página

if (!$pagina) {

$pc = "1";

} else {

$pc = $pagina;

}

$inicio = $pc - 1;

$inicio = $inicio * $total_reg;

$limite = mysql_query("SELECT * FROM legals_invoices LIMIT $inicio,$total_reg");

$todos = mysql_query("$declar");

$tr = mysql_num_rows($todos); // verifica o número total de registros

$tp = $tr / $total_reg; // verifica o número total de páginas

?>

    <td><?

   if ($setts['account_mode']==1) { ?>

      <table width=100%"  border="0" cellspacing="2" cellpadding="2">

        <tr>

          <td><?=$a_lang[accdesc];?></td>

          <td align="center"><?=$a_lang[accdets];?></td>

          <td align="center"><?=$a_lang[accamount];?></td>

          <td align="center"><?=$a_lang[accdate];?></td>

          <td align="center"><?=$a_lang[accprocessor];?></td>

        </tr>

        <?

    $getAuctions = mysql_query("SELECT * FROM legals_auctions WHERE payment_status='confirmed' AND amountpaid>0");

  $cnt=0;

  while ($auctions = mysql_fetch_array($getAuctions)) {

   $description[$cnt]="Auction Setup Fee";

   $paymentAmount[$cnt]=$auctions['amountpaid];

   $auctionId[$cnt]=$auctions['id'];

   $userId[$cnt]=$auctions['ownerid'];

   $processor[$cnt]=$auctions['processor'];

   $paymentDate[$cnt]=$auctions['paymentdate'];

   $cnt++;

  }

    $getUsers = mysql_query("SELECT * FROM legals_users WHERE payment_status=confirmed' AND amountpaid>0");

  while ($users = mysql_fetch_array($getUsers)) {

   $description[$cnt]="User Signup Fee";

   $paymentAmount[$cnt]=$users['amountpaid];

   $auctionId[$cnt]=-";

   $userId[$cnt]=$users['id];

   $processor[$cnt]=$users['processor'];

   $paymentDate[$cnt]=$users['paymentdate'];

   $cnt++;

  }

    $getWinners = mysql_query("SELECT * FROM legals_winners WHERE payment_status=confirmed' AND amountpaid>0");

  while ($winners = mysql_fetch_array($getWinners)) {

   $description[$cnt]="End of Auction Fee";

   $paymentAmount[$cnt]=$winners['amountpaid];

   $auctionId[$cnt]=$winners['auctionid'];

   $userId[$cnt]=$winners['sellerid'];

   $processor[$cnt]=$winners['processor'];

   $paymentDate[$cnt]=$winners['paymentdate'];

   $cnt++;

  }

  for ($i = 0; $i<$cnt-1; $i++) {

   for ($j=$i+1; $j<$cnt; $j++) {

    if ($paymentDate[$i]>$paymentDate[$j]) {

     $tmp_order = $description[$i]; $description[$i] = $description[$j]; $description[$j] = $tmp_order;

     $tmp_order = $paymentAmount[$i]; $paymentAmount[$i] = $paymentAmount[$j]; $paymentAmount[$j] = $tmp_order;

     $tmp_order = $auctionId[$i]; $auctionId[$i] = $auctionId[$j]; $auctionId[$j] = $tmp_order;

     $tmp_order = $userId[$i]; $userId[$i] = $userId[$j]; $userId[$j] = $tmp_order;

     $tmp_order = $processor[$i]; $processor[$i] = $processor[$j]; $processor[$j] = $tmp_order;

     $tmp_order = $paymentDate[$i]; $paymentDate[$i] = $paymentDate[$j]; $paymentDate[$j] = $tmp_order;

    }

   }

  }

  for ($i=0; $i<$cnt; $i++) {

   echo "<tr class=\"".((($count++)%2==0)?"c1":"c2")."\">       \n";

   echo " <td>".$description[$i]."</td>           \n";

   echo " <td nowrap>U ID: ".$userId[$i]."<br>A ID: ".$auctionId[$i]."</td>  \n";

   echo " <td nowrap>".displayAmount($paymentAmount[$i],$setts['currency'],"YES")."</td>\n";

   echo " <td align=center>".(($paymentDate[$i]>0)?date("M. j, Y H:i",$paymentDate[$i]):"n/a")."</td>\n";

   echo " <td>".$processor[$i]."</td>            \n";

     echo "</tr>";

    } ?>

      </table>

      <? } else if ($setts['account_mode']==2) { ?>

      <table width=100%"  border="0" cellspacing="2" cellpadding="2" class="border">

        <tr class="c4">

          <td><?=$a_lang[accdesc];?></td>

          <td align="center"><?=$a_lang[accdets];?></td>

          <td align="center"><?=$a_lang[accamount];?></td>

          <td align="center"><?=$a_lang[accbalance];?></td>

          <td align="center"><?=$a_lang[accdate];?></td>

          <td align="center"><?=$a_lang[accprocessor];?></td>

        </tr>

  <?

  $getPayments = mysql_query("SELECT * FROM legals_invoices ORDER BY id DESC, feedate DESC");

  while ($payments = mysql_fetch_array($getPayments)) {

   echo "<tr class=\"".((($count++)%2==0)?"c1":"c2")."\" ".(($payments['transtype]!="pending")?"style=\"color=#FF0000; font-weight=bold;\"":"").">\n";

   echo " <td>".$payments['feename']."</td>          \n";

   echo " <td nowrap>U ID: ".$payments['userid']."<br>A ID: ".$payments['auctionid']."</td>\n";

   echo " <td align=\"center\" nowrap>".displayAmount($payments['feevalue'],$setts['currency'],"YES")."</td>\n";

   echo " <td align=\"center\" nowrap>".displayAmount($payments['balance'],$setts['currency'],"YES")."</td>\n";

   echo " <td align=\"center\">".date("M. j, Y H:i",$payments['feedate'])."</td>     \n";

   echo " <td align=\"center\">".(($payments['transtype']==pending")?"-":$payments['processor])."</td>\n";

     echo "</tr>";

    }

} ?>

</table>

</td>

  </tr>

</table>

<table width="100%"  border="0" cellspacing="4" cellpadding="4">

  <tr>

    <td align="center">

<?

$anterior = $pc -1;

$proximo = $pc +1;

if ($pc>1) {

echo " <a href='minhaconta.php?pagina=$anterior'><- Anterior</a> ";

}

echo "|";

if ($pc<$tp) {

echo " <a href='minhaconta.php?pagina=$proximo'>Próxima -></a>";

}

?>

</td>

  </tr>

</table>

Ele chega a criar uma paginação, mas repete tudo e não mostra os 10 registros por página conforme ajustado na variável.

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Tente assim:

$declar = "SELECT * FROM legals_invoices";

$total_reg = "10"; // número de registros por página

$total_geral = mysql_num_rows(mysql_query($declar));

if (!$pagina) {

$pc = "1";

} else {

$pc = $pagina;

}

if($pc>ceil($total_geral / $total_reg)) $pc="1";

$inicio = (($pc - 1) * $total_reg);

$limite = mysql_query($declar." LIMIT $inicio,$total_reg");

while()

{

// LOOP

}

Link para o comentário
Compartilhar em outros sites

  • 0

Gladisson, não sei se está certo, mas ficou assim:

while($l = mysql_fetch_array($limite)) {

   echo "Resultado...

n";

}

Aí ele dá um loop e só aparece repetidamente a palavra resultado... sei que errei, mas me diga onde por favor.

Valeu.

tenta assim

while($l = mysql_fetch_array($limite)) {

        $variavel banco de dados = $l["variavel banco de dados"];

o que esta escrito de azul, são as variaveis que irão receber os valores dos campos do bd e vao aparecer na tela...

o que esta escrito de alaranjado, são os campos do banco de dados

vai repetindo com todos os campos que você quer retornar

qualquer coisa fala ae.....

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado pela ajuda Guilherme.

Agora estou conseguindo paginar da seguinte forma:

<?

$busca = "SELECT * FROM legals_invoices";

?>

<?

$total_reg = "50"; // número de registros por página

?>

<?

if (!$pagina) {

$pc = "1";

} else {

$pc = $pagina;

}

?>

<?

$inicio = $pc - 1;

$inicio = $inicio * $total_reg;

?>

        <?

  $getPayments = mysql_query("SELECT * FROM legals_invoices ORDER BY id DESC, feedate DESC LIMIT $inicio,$total_reg");

        $todos = mysql_query("$busca");

        $tr = mysql_num_rows($todos); // verifica o número total de registros

        $tp = $tr / $total_reg; // verifica o número total de páginas

        while ($payments = mysql_fetch_array($getPayments)) {

   echo "<tr class=\"".((($count++)%2==0)?"c1":"c2")."\" ".(($payments['transtype']!=pending")?"style=\"color=#FF0000; font-weight=bold;\"":"").">\n";

   echo " <td>".$payments['feename]."</td>          \n";

   echo " <td nowrap>U ID: ".$payments['userid']."<br>A ID: ".$payments['auctionid']."</td>\n";

   echo " <td align=\"center\" nowrap>".displayAmount($payments['feevalue'],$setts['currency'],"YES")."</td>\n";

   echo " <td align=\"center\" nowrap>".displayAmount($payments['balance'],$setts['currency'],"YES")."</td>\n";

   echo " <td align=\"center\">".date("M. j, Y H:i",$payments['feedate'])."</td>     \n";

   echo " <td align=\"center\">".(($payments['transtype']==pending")?"-":$payments['processor])."</td>\n";

     echo "</tr>";

    }

}

    // botões "Anterior e próximo"

    $anterior = $pc -1;

    $proximo = $pc +1;

    if ($pc>1) {

    echo " <tr><font face='verdana' size='1' color='#ff6600'><a href='?pagina=$anterior'><b><- Anterior</b></a></font>";

    }

    echo " | ";

    if ($pc<$tp) {

    echo " <font face='verdana' size='1' color='#ff6600'><a href='?pagina=$proximo'><b>Próxima -></b></a></font></tr>";

    }

?>

Está paginando corretamente, mas eu queria saber como faço para paginar com a numeração das páginas, desta forma:

<- Anterior  1 2 3 4 5 6 7 8...  Próxima ->

Isso é mais ou menos o que acontece aqui no fórum quando os tópicos são paginados. Oque devo inserir na minha paginação pra ficar assim?

Valeu.

Link para o comentário
Compartilhar em outros sites

  • 0

você vai colocar o que esta de azul e vai tentar e depois me fala, que não me lembro direito....

........

// botões "Anterior e próximo"

$anterior = $pc -1;

$proximo = $pc +1;

//eu sei que criei + 3 variaveis.

// no meu caso eu coloquei assim Vocabulário

eu não estou lembrando do jeito que fiz, mas se ninguém te responder, quando chegar em casa eu coloco ele aqui.....

//com as variaveis que criei eu vou implementá-la aqui......

if ($pc>1) {

  echo " <tr><font face='verdana' size='1' color='#ff6600'><a href='?pagina=$anterior'><b><- Anterior</b></a></font>";

}

echo " | ";

if ($pc<$tp) {

  echo " <font face='verdana' size='1' color='#ff6600'><a href='?pagina=$proximo'><b>Próxima -></b></a></font></tr>";

}

........

tenta ai, se conseguir me fala, e porque eu não estou lembrando, agora tambem estou programando em delphi, totalmente diferente...

Link para o comentário
Compartilhar em outros sites

  • 0

Estou quase conseguindo, mas ainda está dando erro. Modifiquei o script com alguns esquemas que achei por aí na net e está paginando perfeitamente, mas por exemplo neste caso, era pra exibir 25 páginas no total só que aparecem 60 páginas. Só que os registros estão até a página 25 mesmo, as demais aparecem sem nada. Onde está o erro agora???

<?

// botões "Anterior e próximo"

$anterior = $pc -1;

$proximo = $pc +1;

echo "<table width=\"100%\" border=\"0\">

<tr><td align=\"center\" width=\"100%\"><font face='verdana' size='1' color='#ff6600'>

  <a href='?pagina=1'>Primeira</a> ";

if ($pc > 1) {

  echo "

  <a href='?pagina=$anterior'><- Anterior</a> ";

}

for ($i=1; $i <= $tp; $i++) {

  echo "<a href='?pagina=". $i ."'>". $i ."</a> ";

}

if ($pc < $tp) {

  echo " <a href='?pagina=$proximo'>Próxima -></a>";

}

echo "<a href='?pagina=". $tp ."'>Última</a></font></td></tr></table>";

?>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...