como fazer paginação e apresentar em 3 colunas?
pessoal estou precisando de ajuda aqui no meu codigo e programo a pouco tempo e qeria saber como é q eu faço.
abaixo vai o codigo q eu fiz só o problema é que ele lista só em uma coluna.
abaixo vai o codigo q eu fiz só o problema é que ele lista só em uma coluna.
<?php
include("titulo.php");
?>
<p> </p>
<?php
include("conecta.php");
$codigo=$_GET["cod"];
if(isset($_GET["pag"]))
$pag=$$_GET["pag"];
else
if(!isset($pag))
$pag=1;
$quant=10;
$inicio=($pag *$quant)-$quant;
$sql="select * from produtos where cod_grupo = $codigo order by descricão limit $inicio,$quant";
$dados = mysql_query($sql);
echo"
<table width=60%>";
//Percorre todas as linhas retornadas na consulta
while($linha = mysql_fetch_array($dados)) {
$codigo = $linha["codigo"];
$descricao = $linha["descricao"];
$preco = $linha["preco"];
//pega as fotos gravadas com o numero de registro da pasta fotos
$foto = "fotos/".$codigo.".jpg";
echo"
<tr>
<td><img src=$foto width=70 heigth=95></td>
<tr/>
<tr>
<td>$descricao-R$$preco</td>
</tr>";
}
echo"</table>";
$sql2 = "select codigo from produtos";
$dados2 = mysql_query($sql2);
$total = mysql_num_rows($dados);
//ceil:arredonda para cima
$paginas = ceil($total/$quant);
for($i = 1,$i<=$paginas;$i++){
if ($i == $pag){
echo"[i] ";
}
else{
echo "<a href='pesquisa2.php?pag=$i&cod=$cod_grupo'>";
echo "$i</a>&nsbp;&nsbp;&nsbp;";
//fecha a conexão
mysql_close($conecta);
?>
</select>
</form>
</fielset>
</div>
</body>
</html>
comentários (0)
suspender
Lista de Respostas:
26/07/2010 9:45pm
(~15 anos atrás)
(~15 anos atrás)
Alessandro, seu código está com alguns problemas:
#1 A indentação está atrapalhada. Sugiro que use abre/fecha chaves nas instruções condicionais ou de repetição.
#2 A linha a segir tem um cifrão ($) sobrando:
Deveria ser:
#3 A linha a seguir está com "," no lugar do ";":
Deveria ser:
Além disso, o "for" não teve sua chave fechada.
#4 Aparentemente o código abaixo devia usar $dados2 ao invés de $dados:
Mudança:
Enfim, o código precisa de uma boa ajeitada:
Veja que tem muitas coisas que podem ser feitas de outra forma
#1 A indentação está atrapalhada. Sugiro que use abre/fecha chaves nas instruções condicionais ou de repetição.
#2 A linha a segir tem um cifrão ($) sobrando:
$pag=$$_GET["pag"];
$pag = $_GET['pag'];
#3 A linha a seguir está com "," no lugar do ";":
for($i = 1,$i<=$paginas;$i++){
for ($i = 1; $i <= $paginas; $i++) {
Além disso, o "for" não teve sua chave fechada.
#4 Aparentemente o código abaixo devia usar $dados2 ao invés de $dados:
$dados2 = mysql_query($sql2); $total = mysql_num_rows($dados);
$dados2 = mysql_query($sql2); $total = mysql_num_rows($dados2);
Enfim, o código precisa de uma boa ajeitada:
<?php
include("titulo.php");
include("conecta.php");
// Configuracoes
$itens_pagina = 10;
// Obtendo o codigo do grupo e a pagina corrente
$cod_grupo = (int)$_GET['cod'];
$pagina = isset($_GET['pag']) ? (int)$_GET['pag'] : 1;
// Obter total de produtos e total de paginas
$sql = 'SELECT COUNT(*) AS total FROM produtos WHERE cod_grupo = {$cod_grupo}';
$result = mysql_query($sql_total);
$obj = mysql_fetch_object($result);
$total_produtos = $obj->total;
mysql_free_result($result);
unset($sql, $result, $obj);
$total_paginas = ceil($total_produtos / $itens_pagina);
// Obter os produtos
$inicio = ($pagina * $itens_pagina) - $itens_pagina;
$sql = "SELECT * FROM produtos WHERE cod_grupo = {$codigo} ORDER BY descricão LIMIT {$inicio}, {$itens_pagina}";
$result = mysql_query($sql);
// Exibindo a tabela de produtos
echo '<table width="60%">';
while ($obj = mysql_fetch_object($result)):
echo <<<HTML
<tr>
<td><img src="fotos/{$obj->codigo}.jpg" width="70" heigth="95" /></td>
<td>{$obj->descricao}</td>
<td>R${$obj->preco}</td>
<tr/>
HTML;
endwhile;
echo '</table>';
mysql_free_result($result);
unset($sql, $result, $obj);
// Montar links para as paginas
$links = array();
for ($i = 1; $i <= $total_paginas; $i++) {
if ($i == $pagina) {
$links[] = '<span>['.$i.']</span>';
} else {
$links[] = "<a href=\"pesquisa2.php?pag={$i}&cod={$cod_grupo}\">{$i}</a>";
}
}
// Exibir links para as paginas
echo '<p>'.implode(' ', $links).'</p>';
// Fechar a conexao
mysql_close($conecta);
?>
</body>
</html>
Veja que tem muitas coisas que podem ser feitas de outra forma
07/09/2010 10:02pm
(~15 anos atrás)
(~15 anos atrás)
Postei um script que acho que atenda a suas necessidades
http://www.phpbrasil.com/script/AU_1AtGNbDX/exibir-resultados-em-colunas-com-paginacao-mysql
abraço
http://www.phpbrasil.com/script/AU_1AtGNbDX/exibir-resultados-em-colunas-com-paginacao-mysql
abraço
