Ir ao conteúdo
  • Cadastre-se

Paginação no IE


gabrielbe

Posts recomendados

Boa tarde!

To com um problema na paginação de resultados..

Ela funciona corretamente no Firefox e no Chrome..mas no IE ela ultrapassa o limite da div e vai página a fora =S

Como posso ajeitar isso?

segue o código:

pag. q contem a paginação


<?php
include ('conexao.php');
//paginação;

if(isset($_GET["pag"]))
$pag = $_GET["pag"];
else
$pag = 1;

$quanti = 8; // mude para 8 para mostrar 8 registros por página.
$inicio = ($pag * $quanti) - $quanti;


?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="estilo.css">


<title></title>

<div id="conteudo_prod">
<br><span class="titulos">Produtos</span> <?php

//Faz a consulta SQL
//conexão com o servidor
$conexao = mysql_connect("localhost", "root", "");
$id=$_GET['id'];
$sql = mysql_query("SELECT * FROM produto where cod_categoria='$id' limit $inicio, $quanti", $conexao);

// Exibimos os nomes dos produtos e seus repectivos valores
while($row = mysql_fetch_array($sql)) {
$img=$row['imgp'];
$idp=$row['cod_produto'];?>
<table border="0" cellpadding="0" cellspacing="0" bgcolor="#DAE0BE" align="left">

<div>
<tr>
<td bgcolor="#DAE0BE" width="10px"></td>
<td width="121px"><p><span class="textos"><?php echo $row['nome'];?></span></p>
<?php echo "<img src=$img>"?><br><br>
<?php echo "<a href=\"detalhes.php?id=$idp\" target='conteudo'><img src='recortes/produto_bt_veja.jpg' border='0' align='right'/></a>";?>


<td width="14px" align="top" valign="top"><img src="recortes/produto_canto.jpg"></td>
<td bgcolor="#FFFFFF" width="10px"></td>



</tr>

<tr><td bgcolor="#FFFFFF" height="20px"></td>
<td bgcolor="#FFFFFF" height="20px"></td>
<td bgcolor="#FFFFFF" height="20px"></td>
<td bgcolor="#FFFFFF" height="20px"></td></tr>



</table>


<?php } ?>
<div id="paginacao"> <?php
// seleciona a id do produto
$sql3 = "select cod_produto from produto where cod_categoria='$id'";
$dados3 = mysql_query($sql3);
$total = mysql_num_rows($dados3);

//ceil arredonda pra cima
$paginas = ceil($total / $quanti);


for ($i = 1; $i <= $paginas; $i++){
if($i == $pag){
echo "[$i]   ";
}else {
echo "<a href='produtos.php?pag=$i&id=$id'>";
echo "$i </a>   ";
}

}

?>
</div>
</div>


</body>
</html>

css


#conteudo_prod{
background-color:#FFFFFF;
position: relative;
left: -10px;
top: -14px;;
width: 633px;
right: auto;
height: 590px;
_left:-10px;


}

Link para o comentário
Compartilhar em outros sites

estou postando uma screen... a paginação é para listas 8 produtos por página..

mas ele só lista 4

e a paginação ali embaixo funciona direito...

só q ele mostra os produtos listados como se fossem uma linha só, nao faz a quebra da linha..

nao sei se me entendeu?

post-854628-13884959138065_thumb.png

Link para o comentário
Compartilhar em outros sites

  • Moderador

teste assim:

$num = 0;

while($row = mysql_fetch_array($sql)) {
$img=$row['imgp'];
$idp=$row['cod_produto'];?>

if($num % 4 == 0)
sua tabela de produtos aqui
$num++;

} fecha while

isso deveria apresentar 4 produtos, quebrar alinha e aprsentar mais 4 dando total de 8 por pagina.

só uma coisa amigo, se acostume nunca picotar seu PHP.

abra a tag php <?php

e dentro dela.. coloque sua tabela com echo na frente. lembrando que dentro do echo todas as aspas devem ser simples '

e finalize a tag ?>

tambem sua conexao com o banco, acostume-se a criar um conexao.php contendo a conexao com o banco.. e na sua pagina coloque:

include 'conexao.php';

Link para o comentário
Compartilhar em outros sites

  • Moderador
Ok, fiz o que você sugeriu mas não adiantou..continuou o mesmo problema..

=S

nao é possivel.. amigo.. aqui eu tenho um e-commerce que desenvolvi. que na pagina principal eu apresentro 7 produtos por pagina. de 3 em 3 colunas. e assim funcina tranquilo.

sugiro que você de uma otimizada no seu codigo php.

nao tem necessidade de abrir varias vezes a tag e fchar só para usar o html no meio.

você pode usar o html dentro do php com o echo

Link para o comentário
Compartilhar em outros sites

Faria diferença se eu mudar td o código cm você está dizendo?

A sugestão q você deu primeiramente, eu tentei fazer e o código ficou assim...



<?php
include ('conexao.php');
//paginação;

if(isset($_GET["pag"]))
$pag = $_GET["pag"];
else
$pag = 1;

$quanti = 8; // mude para 8 para mostrar 8 registros por página.
$inicio = ($pag * $quanti) - $quanti;


?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="estilo.css">


<title></title>

<div id="conteudo_prod">
<br><span class="titulos">Produtos</span> <?php

//Faz a consulta SQL
//conexão com o servidor
$conexao = mysql_connect("localhost", "root", "");
$id=$_GET['id'];
$sql = mysql_query("SELECT * FROM produto where cod_categoria='$id' limit $inicio, $quanti", $conexao);

// Exibimos os nomes dos produtos e seus repectivos valores
$num = 0;

while($row = mysql_fetch_array($sql)) {
$img=$row['imgp'];
$idp=$row['cod_produto'];
if($num % 4 == 0) ?>
<table border="0" cellpadding="0" cellspacing="0" bgcolor="#DAE0BE" align="left">

<div>
<tr>
<td bgcolor="#DAE0BE" width="10px"></td>
<td width="121px"><p><span class="textos"><?php echo $row['nome'];?></span></p>
<?php echo "<img src=$img>"?><br><br>
<?php echo "<a href=\"detalhes.php?id=$idp\" target='conteudo'><img src='recortes/produto_bt_veja.jpg' border='0' align='right'/></a>";?>


<td width="14px" align="top" valign="top"><img src="recortes/produto_canto.jpg"></td>
<td bgcolor="#FFFFFF" width="10px"></td>



</tr>

<tr><td bgcolor="#FFFFFF" height="20px"></td>
<td bgcolor="#FFFFFF" height="20px"></td>
<td bgcolor="#FFFFFF" height="20px"></td>
<td bgcolor="#FFFFFF" height="20px"></td></tr>



</table>


<?php $num++; } ?>
<div id="paginacao"> <?php
// seleciona a id do produto
$sql3 = "select cod_produto from produto where cod_categoria='$id'";
$dados3 = mysql_query($sql3);
$total = mysql_num_rows($dados3);

//ceil arredonda pra cima
$paginas = ceil($total / $quanti);


for ($i = 1; $i <= $paginas; $i++){
if($i == $pag){
echo "[$i]   ";
}else {
echo "<a href='produtos.php?pag=$i&id=$id'>";
echo "$i </a>   ";
}

}

?>
</div>
</div>


</body>
</html>

seria isso?

Link para o comentário
Compartilhar em outros sites

  • Moderador

tente assimm amigo:

fiz algumas alteraçoes que otimizam o codigo.

por exemplo você nao precisa de include da conexao la na paginaçao.

e você estava criando uma conexao la embaixo.

então tirei sua conexao e puxei aque estava na paginaçao para baixo.

acrescentei mais um if($num % 4 == 0) e mandei apresentar uma </tr>

coloquei toda sua tabela dentro de um echo dentro do php.

veja se assim funciona. estou me baseando no jeito que eu fiz o meu aqui que funciona.


<?php
//paginação;

if(isset($_GET["pag"]))
$pag = $_GET["pag"];
else
$pag = 1;

$quanti = 8; // mude para 8 para mostrar 8 registros por página.
$inicio = ($pag * $quanti) - $quanti;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="estilo.css">
<title></title>

<div id="conteudo_prod">
<br><span class="titulos">Produtos</span>
<table border='0' cellpadding='0' cellspacing='0' bgcolor='#DAE0BE' align='left'>
<?php
//Faz a consulta SQL
//conexão com o servidor
include ('conexao.php');
$id=$_GET['id'];
$sql = mysql_query("SELECT * FROM produto where cod_categoria='$id' limit $inicio, $quanti");

// Exibimos os nomes dos produtos e seus repectivos valores
$num = 0;

while($row = mysql_fetch_array($sql)) {
$img=$row['imgp'];
$idp=$row['cod_produto'];
$nome=$row['nome'];
if($num % 4 == 0)
echo "

<div>
<tr>
<td bgcolor='#DAE0BE' width='10px'></td>
<td width='121px'><p><span class='textos'>$nome </span></p>
<img src='$img'><br><br>
<a href=\"detalhes.php?id=$idp target='conteudo'><img src='recortes/produto_bt_veja.jpg' border='0' align='right'/></a>
<td width='14px' align='top' valign='top'><img src='recortes/produto_canto.jpg'></td>
<td bgcolor='#FFFFFF' width='10px'></td>
</tr>
<tr>
<td bgcolor='#FFFFFF' height='20px'></td>
<td bgcolor='#FFFFFF' height='20px'></td>
<td bgcolor='#FFFFFF' height='20px'></td>
<td bgcolor='#FFFFFF' height='20px'></td>";

$num++;
if($num % 4== 0)
echo "</tr>";
}
?>
</table>
<div id="paginacao">
<?php
// seleciona a id do produto
$sql3 = "select cod_produto from produto where cod_categoria='$id'";
$dados3 = mysql_query($sql3);
$total = mysql_num_rows($dados3);

//ceil arredonda pra cima
$paginas = ceil($total / $quanti);

for ($i = 1; $i <= $paginas; $i++){
if($i == $pag){
echo "[$i]   ";
}else {
echo "<a href='produtos.php?pag=$i&id=$id'>";
echo "$i </a>   ";
}
}
?>
</div>
</div>
</body>
</html>


Link para o comentário
Compartilhar em outros sites

  • Moderador

que estranho..

então volta como tava e tenta por isso aqui:


$num++;
if($num % 4== 0)
echo "</tr>";
} fecha while

no caso você teria dois if($num % 4 == 0).

um la em cima logo apos o while e um nofinal para fechar.

vou te mostrar meu código que funciona:



<div id="conteudo">
Lancamentos:
<table align="center">
<?php
include("conecta.php");

$sql = "select p.codigo,p.produto, p.quant, c.categoria, p.preco , p.descricao, p.destaque from produtos
as p inner join grupos as c on p.codgrupo = c.codigo where destaque='x' limit $inicio, $quanti";

$dados = mysql_query($sql);

$num = 0;

while ($linha = mysql_fetch_array($dados)) {
$codigo = $linha["codigo"];
$produto = $linha["produto"];
$descricao = $linha["descricao"];
$quantidade = $linha["quant"];
$categoria = $linha["categoria"];
$preco = $linha["preco"];
$precof = number_format($preco, 2, ',' , '.');
$destaque = $linha["destaque"];
$foto = "../../musicaGeralAdmin/produtos/" . $codigo . ".jpg";

$quebraNome = wordwrap($produto, 16, "<br />\n");
if($num % 3 == 0)
echo "<tr width='50%'>";
echo "<td><div id='produto'><a href='mostraProduto.php?cod=$codigo'><img src=$foto width=140 height=120></a><br/>";
echo "<div><br/><a href='mostraProduto.php?cod=$codigo'>$quebraNome <span>- Cód. $codigo</span></a></div></div><br/>";
echo "<div style='color:#f00;margin-left:20px;font-size:12pt'>R$ $precof</div><br/>";

$num++;
if($num % 3== 0)
echo "</tr>";
}

$sql3 = "select codigo from produtos";
$dados3 = mysql_query($sql3);
$total = mysql_num_rows($dados3);

//ceil arredonda pra cima
$paginas = ceil($total / $quanti);
for ($i = 1; $i <= $paginas; $i++){
if($i == $pag){
echo "[$i]   ";
}else {
echo "<a href='index.php?pag=$i'>";
echo "$i </a>   ";
}
}

// Libera o vetor $dados e fecha a conexão
mysql_free_result($dados);
mysql_close($conecta);
?>
</table>
</div>

olha uma screen do meu site. do codigo acima. foi um comércio eletrônico que desenvolvi para concluir meu 4 semestre na faculdade.

Veja que sao 3 produtos por coluna. só que o meu tava configurado para 9 produtos por pagina .. mas ali só tenho 7 em destaque.. porque havia tirado 2 produtos para teste.

repare que no meu codigo que eu estou usando:

if( $num % 3 == 0)

dua vezes.. para quebrar a coluna de 3 em 3 produtos.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...