Bobrinha 4 Denunciar post Postado Junho 29, 2010 Olá, estou com um grande problema, eu queria saber como dividir os resultados de uma coluna em 3 ou mais colunas e umas 10 linhas, vejam meu codigo só exibe um resultado. <?php $limite = "10"; $consulta = mysql_query("SELECT * FROM produtos ORDER BY RAND( ) LIMIT $limite"); $n = mysql_fetch_array($consulta); $id = $n["id"]; $categoria = $n["id_categoria"]; $nome = $n["nome"]; $descricao = $n["descricao"]; $preco = $n["preco"]; $imagem = $n["imagem"]; $preco = preco($preco); echo "<table width=\"100\" border=\"0\" cellspacing=\"3\" cellpadding=\"0\"> <tr> <td>$nome</td> </tr> <tr> <td><img src=\"imagens/uploads/$imagem.jpg\" width=\"120\" height=\"100\" /></td> </tr> <tr> <td>$preco</td> </tr> </table>"; ?> Compartilhar este post Link para o post Compartilhar em outros sites
root_ 0 Denunciar post Postado Junho 29, 2010 <?php $limite = "10"; $consulta = mysql_query("SELECT * FROM produtos ORDER BY RAND( ) LIMIT $limite"); echo "<table width=\"100\" border=\"0\" cellspacing=\"3\" cellpadding=\"0\">"; while ($n = mysql_fetch_array($consulta)) { $id = $n["id"]; $categoria = $n["id_categoria"]; $nome = $n["nome"]; $descricao = $n["descricao"]; $preco = $n["preco"]; $imagem = $n["imagem"]; $preco = preco($preco); echo "<tr> <td>$nome</td> </tr> <tr> <td><img src=\"imagens/uploads/$imagem.jpg\" width=\"120\" height=\"100\" /></td> </tr> <tr> <td>$preco</td> </tr>"; } // Fim while echo "</table>"; ?> Como você já utilizou um limit de 10, o While vai mostrar até o limite da query. :D Compartilhar este post Link para o post Compartilhar em outros sites
Bobrinha 4 Denunciar post Postado Junho 29, 2010 vlw root, mais fazendo isso ele vai exibir mais como faz pra que fique em 3 ou mais colunas? Compartilhar este post Link para o post Compartilhar em outros sites
root_ 0 Denunciar post Postado Junho 29, 2010 AS colunas você definiu com as TAGS <TR> | | | | Já existem 3 Colunas, NOME, IMAGEM, E PREÇO.. Agora se forem 3 Linhas ____ ____ ____ É só botar a variavel $limite = 3;; Se não for isso, não estou conseguindo interpretar sua dúvida. Compartilhar este post Link para o post Compartilhar em outros sites
Bobrinha 4 Denunciar post Postado Junho 29, 2010 root é assim o código ai tem uma tabela, com 3 colunas, e ta com o que você fez mostra normal uma embaixo da outra, mais como mostrar mais do lado? veja essa imagem que eu fiz aki acho que da pra entender, obrigado http://img266.imageshack.us/img266/5391/61802689.jpg Compartilhar este post Link para o post Compartilhar em outros sites
root_ 0 Denunciar post Postado Junho 30, 2010 <?php $limite = "3"; //NUMERO DE COLUNAS $consulta = mysql_query("SELECT * FROM produtos ORDER BY RAND( ) LIMIT $limite"); while ($n = mysql_fetch_array($consulta)) { $id = $n["id"]; $categoria = $n["id_categoria"]; $nome = $n["nome"]; $descricao = $n["descricao"]; $preco = $n["preco"]; $imagem = $n["imagem"]; $preco = preco($preco); echo "<table width=\"100\" border=\"0\" cellspacing=\"3\" cellpadding=\"0\" style=\"float:left;margin-right:10px\"> <tr> <td>$nome</td> </tr> <tr> <td><img src=\"imagens/uploads/$imagem.jpg\" width=\"120\" height=\"100\" /></td> </tr> <tr> <td>$preco</td> </tr> </table>"; } // Fim while ?> Compartilhar este post Link para o post Compartilhar em outros sites
Bobrinha 4 Denunciar post Postado Junho 30, 2010 root $limite ali não é o resultado que deve aparecer isso ai só vai gerar 3 resultados se mudar pra 10 vira 10 resultados, não é isso são colunas como na imagem que coloquei ali, quando você entra em uma loja tipo do link aki http://shop.imasters.com.br/categoria/16/cd tem 2 colunas e 12 resultados aquele limite ali é somente o numero de resultados a ser exibidos não é colunas, uma do lado da outra :( Compartilhar este post Link para o post Compartilhar em outros sites
root_ 0 Denunciar post Postado Junho 30, 2010 <?php $limite = "10"; //NUMERO DE REGISTRO $coluna = "3"; //NUMERO DE COLUNAS $contador = 0; //INICIA O CONTADOR $consulta = mysql_query("SELECT * FROM produtos ORDER BY RAND( ) LIMIT $limite"); while ($n = mysql_fetch_array($consulta)) { $id = $n["id"]; $categoria = $n["id_categoria"]; $nome = $n["nome"]; $descricao = $n["descricao"]; $preco = $n["preco"]; $imagem = $n["imagem"]; $preco = preco($preco); if ($contador<$coluna) $style = "style=\"float:left;margin-right:10px\""; else $style = "style=\"margin-right:10px\""; echo "<table width=\"100\" border=\"0\" cellspacing=\"3\" cellpadding=\"0\" $style > <tr> <td>$nome</td> </tr> <tr> <td><img src=\"imagens/uploads/$imagem.jpg\" width=\"120\" height=\"100\" /></td> </tr> <tr> <td>$preco</td> </tr> </table>"; if ($contador==$coluna) $contador = 0; else $contador++; } // Fim while ?> Puts, acho que é isso, desculpa, não tinha entendido! PS: Lembrando que neste caso, a ultima linha terá apenas 1 colunas, pelo número de REGISTRO ser 10, e não ser multiplo de 3, o numero de colunas informado! Compartilhar este post Link para o post Compartilhar em outros sites
Bobrinha 4 Denunciar post Postado Julho 5, 2010 Olá, é mais ou menos isso sim porém do jeito que você fez ai fica mostrando com falhas os resultados do tipo primeira linha 4 resultados segunda linha 2 terceira 3 etc... fica alternando eu queria uma tabela com os resultados como a tabela a abaixo <table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> <tr> <td><a href=\"produto.php?id=$id\" title=\"$nome\"><div id=\"nome\">$nome</div></a></td> <td><a href=\"produto.php?id=$id\" title=\"$nome\"><div id=\"nome\">$nome</div></a></td> <td><a href=\"produto.php?id=$id\" title=\"$nome\"><div id=\"nome\">$nome</div></a></td> </tr> <tr> <td><a href=\"produto.php?id=$id\" title=\"$nome\"><img src=\"imagens/uploads/$imagem.jpg\" /></a></td> <td><a href=\"produto.php?id=$id\" title=\"$nome\"><img src=\"imagens/uploads/$imagem.jpg\" /></a></td> <td><a href=\"produto.php?id=$id\" title=\"$nome\"><img src=\"imagens/uploads/$imagem.jpg\" /></a></td> </tr> <tr> <td><div class=\"preco\">$preco</div></td> <td><div class=\"preco\">$preco</div></td> <td><div class=\"preco\">$preco</div></td> </tr> <tr> <td><a href=\"produto.php?id=$id\" title=\"$nome\"><img src=\"imagens/detalhe.jpg\" /></a></td> <td><a href=\"produto.php?id=$id\" title=\"$nome\"><img src=\"imagens/detalhe.jpg\" /></a></td> <td><a href=\"produto.php?id=$id\" title=\"$nome\"><img src=\"imagens/detalhe.jpg\" /></a></td> </tr> </table> segue abaixo o codigo que estou atualmente usando <?php $limite = "10"; $consulta = mysql_query("SELECT * FROM produtos ORDER BY RAND( ) LIMIT $limite"); while ($n = mysql_fetch_array($consulta)) { $id = $n["id"]; $categoria = $n["id_categoria"]; $nome = $n["nome"]; $descricao = $n["descricao"]; $preco = $n["preco"]; $imagem = $n["imagem"]; $preco = preco($preco); echo "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> <tr> <td><a href=\"produto.php?id=$id\" title=\"$nome\"><div id=\"nome\">$nome</div></a></td> <td><a href=\"produto.php?id=$id\" title=\"$nome\"><div id=\"nome\">$nome</div></a></td> <td><a href=\"produto.php?id=$id\" title=\"$nome\"><div id=\"nome\">$nome</div></a></td> </tr> <tr> <td><a href=\"produto.php?id=$id\" title=\"$nome\"><img src=\"imagens/uploads/$imagem.jpg\" /></a></td> <td><a href=\"produto.php?id=$id\" title=\"$nome\"><img src=\"imagens/uploads/$imagem.jpg\" /></a></td> <td><a href=\"produto.php?id=$id\" title=\"$nome\"><img src=\"imagens/uploads/$imagem.jpg\" /></a></td> </tr> <tr> <td><div class=\"preco\">$preco</div></td> <td><div class=\"preco\">$preco</div></td> <td><div class=\"preco\">$preco</div></td> </tr> <tr> <td><a href=\"produto.php?id=$id\" title=\"$nome\"><img src=\"imagens/detalhe.jpg\" /></a></td> <td><a href=\"produto.php?id=$id\" title=\"$nome\"><img src=\"imagens/detalhe.jpg\" /></a></td> <td><a href=\"produto.php?id=$id\" title=\"$nome\"><img src=\"imagens/detalhe.jpg\" /></a></td> </tr> </table> "; } ?>Porem fazendo assim é exibido por exemplo como eu quero 3 colunas e 10 resultados etc... porém cada coluna com os mesmos resultados como na imagem abaixo Compartilhar este post Link para o post Compartilhar em outros sites
net32 1 Denunciar post Postado Julho 30, 2010 puts estou com esse mesmo problema, estou listando um sistema de fotografias: Código: <?php include "config/conexao.php"; $ALBUM=$_GET['id']; $limite = "3"; $sql = "SELECT * FROM fotos WHERE nome_album='$ALBUM'"; $resultado = mysql_query($sql) or die (mysql_error()); while ($linha=mysql_fetch_array($resultado)) { $id = $linha["nome_album"]; $nome = $linha["nome"]; $observacoes = $linha["observacoes"]; echo '<tr>'; echo '<td><a rel="gallery" title="'.$observacoes.'" href="fotos/'.$nome.'"><img src="thumb-album.php?img='.$nome.'"></a></td>'; echo '<td><a rel="gallery" title="'.$observacoes.'" href="fotos/'.$nome.'"><img src="thumb-album.php?img='.$nome.'"></a></td>'; echo '</tr>'; } ?> O problema é o mesmo do dele os resultados aparecem todos repetidos na mesma linha da tabela no HTML, alguem tem a solucão? Compartilhar este post Link para o post Compartilhar em outros sites
Bobrinha 4 Denunciar post Postado Julho 30, 2010 Olá amigo, infelizmente mesmo tendo varios profissionais aqui em duvidas que para outros seria tão simples de responder não responde..., bom fui buscar por ajuda e acabei achando uma solução, digamos uma mágica que resolveu meu problema de maneira facil. uso o codigo abaixo no site que fiz esse http://loja.bobrinha.com o resultado foi o e esperado espero que seja o seu tambem e que o codigo abaixo lhe ajude... <?php $limite = "21"; $sql = mysql_query("SELECT * FROM produtos ORDER BY RAND( ) LIMIT $limite"); ?> <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0"> <?php $total = mysql_num_rows($sql); // Defina o número de colunas que você deseja exibir: $colunas = 3; // Agora vamos ao "truque": if ($total>0) { for ($i = 0; $i < $total; $i++) { if (($i%$colunas)==0) { ?> <tr> <?php }?> <?php $dados= mysql_fetch_array($sql) ; $preco = $dados['preco']; $preco = preco($preco); ?><td width="100" cellpadding="1" cellspacing="1"> <div align="center"> <?php if($dados['nome'] != ""){?> <?php }?> <b><div id="nome"><a href="produto.php?id=<?php echo $dados['id']; ?>" title="<?php echo $dados['nome']; ?>"><?php echo $dados['nome']; ?></a></div></b><br> <a href="produto.php?id=<?php echo $dados['id']; ?> "><img src="imagens/uploads/<?php echo $dados['imagem']; ?>.jpg"></a><br /> <div class="preco"><?php echo $preco; ?></div><br> <a href="produto.php?id=<?php echo $dados['id']; ?>" title="<?php echo $dados['nome']; ?>"><img src="imagens/detalhe.jpg" /></a> <?php }} ?> Compartilhar este post Link para o post Compartilhar em outros sites
net32 1 Denunciar post Postado Julho 30, 2010 showww, consegui implementei e fiz uns ajustes com esse segredo $total = mysql_num_rows($sql); // Defina o número de colunas que você deseja exibir: $colunas = 3;// Agora vamos ao "truque": if ($total>0) { for ($i = 0; $i < $total; $i++) { if (($i%$colunas)==0) { ?> <tr> <?php }?>ele cria um<tr>perfeito mais pra fexar a coluna</tr>teria como fazer? só pra não ocorrer falhas em diferentes browser, ou browsers antigos. Vlw mesmo!!! Estou devendo uma pra ti, consegui fazer perfeito como queria Abraço! Compartilhar este post Link para o post Compartilhar em outros sites
Bobrinha 4 Denunciar post Postado Julho 30, 2010 não entendi sua pergunta, mais ja testei em todos os navegadores e varias versões e não tem nenhum problema Você mesmo pode criar sua propria tabela e adptar ao script pois se perceber ele simplesmente faz um while em uma tabela Compartilhar este post Link para o post Compartilhar em outros sites