Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Se alguém puder me ajudar agradeceria,
É o seguinte, não estou conseguindo adaptar minha necessidade a um código de páginação. Tentei fazer uns "for" mas não deu resultado.
Preciso gerar para cada página 9 resultados (são fotos), só que preciso que eles fiquem assim:
1 2 3
4 5 6
7 8 9
e não assim:
1
2
3
4
5
...
<?php // Parte 1$host = ""; $user = ""; $pass = ""; $db_nome = ""; $link = mysql_connect ($host, $user, $pass); $query = "SELECT * FROM recantofotos order by id desc"; $result = mysql_db_query ($db_nome, $query, $link) or die ("Erro com BD!"); $num = mysql_num_rows($result); $total_reg = 9; mysql_close($link); // Fim Parte 01// Parte 02if ($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; } // Fim Parte 02// Parte 03$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) { $id = $array_result["id"]; $img1 = $array_result["foto"]; echo "<table width=\"100%\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\"> <tr> <td height=\"75\"><img src=\"tratando.php?w=96&h=96&foto=".$img1."\"></td> </tr> </table>"; } $marcador = $marcador + 1; } // Fim parte 03// Parte 04 if ($pagina == 1) { echo "<br>"; } else { echo "<br><a href=\"recanto.php?pagina=".($pagina - 1)."\" target=\"_self\" class=\"texto4\">voltar </a>"; } $i = 1; while ($i <= $total_paginas) { if ($i == $pagina) { echo ""; } else { echo ""; } $i = $i + 1; } if ($pagina == $total_paginas) { echo "<br>"; } else { echo "<a href=\"recanto.php?pagina=".($pagina + 1)."\" target=\"_self\" class=\"texto4\"> mais fotos</a> \n"; } // Fim Parte 04?>
AQUI:
$marcador = 0; while ($array_result = mysql_fetch_array($result)) { if ($marcador >= $linha_inicial and $marcador <= $linha_final) { $id = $array_result["id"]; $img1 = $array_result["foto"]; echo "<table width=\"100%\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\"> <tr> <td height=\"75\"><img src=\"tratando.php?w=96&h=96&foto=".$img1."\"></td> </tr> </table>"; } $marcador = $marcador + 1; }
Alguém pode me ajudar como fazer as fotos aparecem em 3 colunas e 3 linhas?
Grato ...
tmferreira, ele ainda imprimi todos os resultados em cada página.Se souber e puder me ajudar faça esse favor.Valeu desde já. (Y)
o código não ta comentado, mas é simples entende-lo...
> <?include "inc/config.php";$re = mysql_query("SELECT count(*) as total FROM produtos");$total = mysql_result($re, 0, "total");$pagina = 0;if(isset($_GET["pagina"])) {$pagina = $_GET["pagina"];}//TOTAL DE PRODUTOS POR LINHA$col = 2;$limite = 4;$paginas = ceil($total / $limite);$inicio = $pagina * $limite;$sql = mysql_query("SELECT * FROM produtos LIMIT $inicio, $limite");$conta = mysql_num_rows($sql);?> <table width="300" border="0" cellspacing="1" cellpadding="1"> <tr><?while($l = mysql_fetch_array($sql)) { if($col == $atual) { echo "</tr><tr>"; $atual = 0; } ?> <td><?=$l['imagem'];?></td><?$atual++;}?> </tr></table> <? if($pagina > 0) {$menos = $pagina - 1;$url = $_SERVER["PHP_SELF"]."?pagina=".$menos;echo "<a href=\"$url\">Anterior</a>";}for($i = 0;$i < $paginas; $i++) {$url = $_SERVER["PHP_SELF"]."?pagina=".$i;$numpag = $i+1;echo " | <a href=\"$url\">$numpag</a>";}if($pagina < $paginas - 1) {$mais = $pagina + 1;$url = $_SERVER["PHP_SELF"]."?pagina=".$mais;echo " | <a href=\"$url\">Próxima</a>";}?>
Qualquer dúvida, posta ai...
tm, valeu pelo código, achei ele um pouco confuso, por isso me concentrei neste abaixo.
Naquela parte do while, fiz uns esquemas de aparecem em colunas e linhas.
Ele faz a paginação (entende que existem 4 páginas, em cada páginas 3 resultados) só que em todas as páginas ele exibe todas as fotos.
Nesse trecho do código abaixo é onde imprimi os dados na tela.
while ($array_result = mysql_fetch_array($result)) { if ($marcador >= $linha_inicial and $marcador <= $linha_final) { if ($num == 0) { echo "<font size=\"2\" face=\"Arial, Helvetica, sans-serif\" color=\"#000000\">Nenhuma foto cadastrada</font>"; } else { echo "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">"; $col = 0; for($i=0;$i<$num;$i++){ $id = mysql_result($result, $i, id); $img1 = mysql_result($result, $i, foto); $col++; if ($col == 4) { echo "<tr></tr>"; $col =1; } echo "<td align=\"right\"> <img src=\"tratando.php?w=97&h=97&foto=".$img1."\"> </td>"; } } } //incrementamos o marcador... $marcador = $marcador + 1; }
A programação entende que existem as paginações, mas na hora de imprimir os resultados, ela em todas as páginas imprimi todas as fotos.
Se alguém souber o erro, ficaria grato pela ajuda.
Valeu (Y)