Arranjei um sistema de mural simples. Ele tem paginação, que posso limitar (digamos 10 por página), mas os números vão aparecendo em uma linha horizontal infinitamente "alargando" a página.
Fiz um monte de pesquisas sobre paginação, tentei mudar mas não consegui.
Eis o código inteiro:
<? $pg1=$_GET[pg1]; $page1=$_GET[page1]; $busca = "SELECT * FROM mural WHERE id_franquia='$cidade' AND status='S' order by id desc"; // termina a função para buscar a categoria $total_reg = "11"; if(!$page1){ $page1 = "1"; } $inicio = $page1-1; $inicio = $inicio*$total_reg; $limite = mysql_query("$busca LIMIT $inicio,$total_reg"); $todos = mysql_query("$busca"); $tr = mysql_num_rows($todos); $tp = ceil($tr / $total_reg); if(mysql_num_rows($todos)>0){ // if (($todos%2)==0) { $bgcolor="#FFFFFF"; } else { $bgcolor="#C0C0C0"; } ?> <style type="text/css"> <!-- .style11 { color: #FFFFFF; font-weight: bold; } --> </style> <table align="center" width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="center" width="100%" valign="top"><div align="center"> <table align="center" width="720" height="100%" border="0" cellpadding="3" cellspacing="0"> <tr> <td colspan="3" align="center" valign="top"> <table align="center" width="100%" cellpadding="0" cellspacing="0"> <tr><td height="1" colspan="5"></td></tr> <TR> <TD align="right">Recados: <strong><? echo "<b><font color=$coronmouse>$tr</font></b>";?></strong> </TD> </TR> <tr><td height="1" colspan="3"></td></tr> </table> <table align="center" width="100%" border=0 cellpadding=2 cellspacing=0> <? while ($dados=mysql_fetch_array($limite)) {?> <tr align="center" bgcolor="#FFFFFF"> <td colspan="3" align="left"> <font size="2" color="#000000">De:</font> <b><font size="2" color="red"><? echo $dados[de]?></font></b> <font size="2" color="#000000">Para:</font> <b><font size="2" color="red"><? echo $dados[para]?></font></b> <fieldset><legend><span class="legenda"><font color="#000000">Mensagem:</font></span></legend> <font size="2" color="#000000"><? $msg2 = $dados["mensagem"]; $str = split(" ",$msg2); $msg = ""; for ($i=0;$i<count($str);$i++) { $tam = strlen($str[$i]); //echo "<br><Br>Palavra $str[$i]<Br>Tam <b>$tam</b><br><br>"; $ini = 0; if ($tam>25) { $espacos = intval(strlen($str[$i]) / 25); //echo "<br>Inserir $espacos espacos na palavra"; for ($y=0;$y<$espacos;$y++) { $ini = $y*25; $fim = 25; $esp = substr($str[$i],$ini,$fim) ." "; //echo "<Br>Inserindo espaco $y ($ini,$fim) [$esp]"; $msg .= $esp; $ini = ($y+1)*25; } } $esp = substr($str[$i],$ini,strlen($str[$i])) ." "; //echo "<Br>Inserindo restante $esp"; $msg .= $esp; } echo nl2br($msg); ?></font> </fieldset> </td> </tr> <tr> <td colspan="4"><div align="right"> <i>Data: <? $var = $dados['data']; $var = explode(" ",$var); $dia = $var[0]; $hora = $var[1]; $dia = explode("-",$dia); $data = "$dia[2]/$dia[1]/$dia[0] às $hora"; echo "$data"; ?> </i></div></td> </tr> <? }?> <tr><TD> <table border="0" align="center" cellpadding="0" cellspacing="0"> <TR> <TD width="100" align="right" valign="top"> <? if($page > 1){ $anterior = $page -1; $url = "?pg=$pg&page=$anterior"; echo "<a href='$url'>« Anterior</a> |"; } else { echo "<font color='white'>« Anterior</font> |"; } ?> </TD> <TD align="center"> <? for($x=1; $x<=$tp; $x++){ $url = "?pg=$pg&page=$x"; if ($x==$page) { echo "<font color='red'><b>$x</b></font>|"; } else { echo "<a href='$url'>$x</a>|"; } } ?> </TD> <TD width="100" align="left" valign="top"> <? if($tp > $page){ $proxima = $page +1; $url = "?pg=$pg&page=$proxima"; echo " <a href='$url'>Próxima »</a>"; } else { echo " <font color='white'>Próxima »</font>"; } ?> </TD> </TR> </table> </TD></tr> </table> </td> </tr> </table> </div></td> </tr> </table> <? } else {?> <table width="338" cellpadding="0" cellspacing="0"> <TR> <TD align="center" valign="bottom"> <br> Desculpe-nos, no momento não temos nenhum Recado<br> cadastrado em nosso banco de dados!<br> <br> </td> </tr> </table> <table width="338" cellpadding="0" cellspacing="0"> <TR> <TD align="center" valign="bottom"> <a href="?pg=principal"> <h3>Deixe seu Recado!</h3> </a> </td> </tr> </table> <? } ?>
Aqui a parte inicial do código:
<? $pg1=$_GET[pg1]; $page1=$_GET[page1]; $busca = "SELECT * FROM mural WHERE id_franquia='$cidade' AND status='S' order by id desc"; // termina a função para buscar a categoria $total_reg = "11"; if(!$page1){ $page1 = "1"; } $inicio = $page1-1; $inicio = $inicio*$total_reg; $limite = mysql_query("$busca LIMIT $inicio,$total_reg"); $todos = mysql_query("$busca"); $tr = mysql_num_rows($todos); $tp = ceil($tr / $total_reg); if(mysql_num_rows($todos)>0){ // if (($todos%2)==0) { $bgcolor="#FFFFFF"; } else { $bgcolor="#C0C0C0"; } ?>
Aqui onde pagina:
<? if($page > 1){ $anterior = $page -1; $url = "?pg=$pg&page=$anterior"; echo "<a href='$url'>« Anterior</a> |"; } else { echo "<font color='white'>« Anterior</font> |"; } ?> <? for($x=1; $x<=$tp; $x++){ $url = "?pg=$pg&page=$x"; if ($x==$page) { echo "<font color='red'><b>$x</b></font>|"; } else { echo "<a href='$url'>$x</a>|"; } } ?> <? if($tp > $page){ $proxima = $page +1; $url = "?pg=$pg&page=$proxima"; echo " <a href='$url'>Próxima »</a>"; } else { echo " <font color='white'>Próxima »</font>"; } ?>
Tem como fazer alguma modificação dentro desse código para paginar corretamente?