Mulambo 1 Denunciar post Postado Agosto 15, 2010 Olá gente, gostaria de pedir ajuda em uma página que estou montando aqui. Antes de ir direto ao ponto vou explicar o conceito do que eu busco, quero exibir os resultados de uma database em forma de tabela, mais ou menos assim: Imagem1: Ou seja, a tabela deve ter 3 colunas e infinitas linhas, ai eu fiz a parte de busca na db, que ficou assim: <?php include ("conexao.php"); $resultado = mysql_query("select * from produtos"); mysql_close(); if(mysql_num_rows($resultado) < 1) { exit; } while($l = mysql_fetch_array($resultado)) { $id = $l["id"]; $produto = $l["produto"]; echo "<div id='produto_box'> <div id='produto_icon'></div> <div id='produto_nome'> <a href='?pagina=ver_produto&?id={$l['id']}'>$produto</a></div> </div>"; } ?> O problema desse código é que ele mostra os resultados de forma linear, e eu quero exibir do modo que foi dito anteriormente, ai fui tentar fazer uma 'gambiarra' de misturar dois códigos e deu nisso aqui: <table border="0" width="100%" cellpascing="1" cellpadding="0"> <?php $total_linhas = mysql_num_rows($resultado); $linhas= $total_linhas; $colunas = 3; // laço que montará a tabela de acoro com as variáveis $linhas e $colunas for ($i=0;$i<$linhas;$i++){ echo "<tr>"; for($j=0; $j<$colunas; $j++){ if ($i % 2){ // a função bg color mostra cada linha de uma cor. $bgcolor = "#A8A8A8"; }else{ $bgcolor="#CCCCCC"; } echo " <td bgcolor=$bgcolor align='center'><div id='produto_box'> <div id='produto_icon'></div> <div id='produto_nome'> <a href='?pagina=ver_produto&?id={$l['id']}'>$produto</a></div> </div></td>"; } echo "</tr>"; } ?> </table>E o problema aqui, é que mostra como na foto acima, gera mais resultados do que existe na database, além de exibir apenas o ultimo resultado inserido. E agora amigos. Como posso fazer pra obter o meu resultado? alguem pode me ajudar? Agradeço desde de já! Compartilhar este post Link para o post Compartilhar em outros sites
Eliseu M. 2 Denunciar post Postado Agosto 15, 2010 Eu exibiria cada resultado em uma DIV (ou SPAN) e definiria um resultado próximo ou igual a 30% de largura + o float:left; para pular linha. O esquema é simples, é só dar o float e definir o tamanho, no caso, 100%/3 = 33%, só que você não pode colocar 33% por causa dar margens. Compartilhar este post Link para o post Compartilhar em outros sites
rodrigo I.O 0 Denunciar post Postado Agosto 15, 2010 Bom dei uma olhada aí e vamo ve se eu entendi... você diz que cada quadrinho desse é um registro certo! então imprime tudo em divs de forma linear. Se ela (a div) estiver dentro de um container (outra div) com uma propriedade de largura (isso falando de css) definida ele vai quebrar a linha sem problemas. Pois uma div é um elemento nível de bloco. Todos os elementos nível de bloco inserem uma quebra de linha, como se fosse um <br/>, antes e depois do elemento. (e claro usando um float: left;) como o colega aí de cima falou. (entendi a coisa ou to errado???) :mellow: Compartilhar este post Link para o post Compartilhar em outros sites
Mulambo 1 Denunciar post Postado Agosto 15, 2010 Olá amigos, Problema resolvido!! Eu me fixei tanto nesse lance de fazer com tabela dinâmica, que nem pensei em fazer com css direto! Olha ai o Resultado: Muito Obrigado! Abraços! Compartilhar este post Link para o post Compartilhar em outros sites