andre227
(usa Slackware)
Enviado em 28/07/2010 - 00:44h
Cara então, eu consegui! Porém acho que fiz de um jeito muito complexo, gostaria de ver se existe uma maneira mais fácil.
Não fiz o esquema das 2 comsultas que vc sugeriu pois meus cadastros estão organizados por ORDER BY DESC. Daí segui a idéia do stack_of e copiei tudo para um vetor através de uma função que encontrei no site do php.net .
Veja o Código:
<?php
$query = "SELECT * FROM Mural ORDER BY idRecado DESC";
$resultado = mysql_query($query);
$row = meu_array($resultado);
$num_resultados = mysql_num_rows($resultado);
if ($num_resultados == 0) {
echo "<table align='center' width='70%' border='1' cellspacing='0' bordercolor='#000000' bgcolor='#CCCCCC'>";
echo "<tr>";
echo "<td><font face='Georgia, Times New Roman, Times, serif'><center>Nenhum recado postado!</center></font></td>";
echo "</tr>";
echo "</table>";
exit;
}
//Calculo da qtde de paginas
$npaginas = $num_resultados / 5;
if ($nresultados % 5) {
$npaginas = (int)$npaginas;
}
else {
$npaginas = (int)$npaginas + 1;
}
//Verifica a pagina em que o usuario está
if ($_GET['pagina']) {
$pagina = $_GET['pagina'];
}
else {
$pagina = '1';
}
$limite = ($pagina - 1) * 5;
//Impressao dos recados
for($i = $limite; $i < $pagina * 5; $i++) {
// $row = mysql_fetch_array($resultado);
echo "<table width='100%' border='1' cellpadding='4' cellspacing='0' bordercolor='#000000' bgcolor='#CCCCCC'>";
echo "<tr>";
echo "<td width='40%'><font face='Georgia, Times New Roman, Times, serif'>Por: ";
echo $row[$i]['Nome'];
echo "</font></td>";
echo "<td width='30%'><font face='Georgia, Times New Roman, Times, serif'>Em: ";
echo $row[$i]['Dia'];
echo "</font></td>";
echo "<td width='30%'><font face='Georgia, Times New Roman, Times, serif'>As: ";
echo $row[$i]['Hora'];
echo "</font></td>";
echo "</tr>";
echo "<tr>";
echo "<td colspan='3'><font face='Georgia, Times New Roman, Times, serif'>";
echo $row[$i]['Recado'];
echo "</font></td>";
echo "</tr>";
echo "</table>";
echo "<br />";
//Esta linha freia impressões da tabela quando a página possue menos que 5 registros
if (($i + 1) == $num_resultados) {
break;
}
}
echo "<font face='Georgia, Times New Roman, Times, serif'>";
//Impressão dos Links
for($i = 1; $i <= $npaginas; $i++) {
//Este if não linka a página onde o usuário esta navegando
if ($i == $pagina) {
echo $i. " | ";
}
else {
echo "<b><a href='?pagina=".$i."'>".$i."</a></b>";
//Este if não imprime o último | da sequeência
if ($i != $npaginas) {
echo " | ";
}
}
}
echo "</font><br /><br />";
function meu_array($result)
{
$table_result=array();
$r=0;
while($row = mysql_fetch_assoc($result)){
$arr_row=array();
$c=0;
while ($c < mysql_num_fields($result)) {
$col = mysql_fetch_field($result, $c);
$arr_row[$col -> name] = $row[$col -> name];
$c++;
}
$table_result[$r] = $arr_row;
$r++;
}
return $table_result;
}
?>
Gostaria de saber se há uma maneira mais fácil. Obrigado a todos!