Ir para conteúdo

POWERED BY:

Arquivado

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

Bobrinha

Divisão por tabelas com limite e quantidades

Recommended Posts

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

<?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

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

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


<?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

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



<?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

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

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

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

showww, consegui implementei e fiz uns ajustes com esse segredo Imagem Postada

$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 Imagem Postada

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

não entendi sua pergunta, mais ja testei em todos os navegadores e varias versões e não tem nenhum problema Imagem Postada

 

Você mesmo pode criar sua propria tabela e adptar ao script pois se perceber ele simplesmente faz um while em uma tabela Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.