Ir para conteúdo

POWERED BY:

Arquivado

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

BrunoVieira

[Resolvido] mostrar conteudo alinhado

Recommended Posts

Oi pessoal,

 

estou a fazer um pequeno script onde este vai a base de dados consultar produtos. o meu problema está ao fazer o echo, queria que ele mostrasse desta forma mas não estou conseguindo:

 

Imagem Postada

 

tenho o código já em html:

<table width="652" border="0" cellspacing="5" cellpadding="0">

<tr>

<td width="165" align="left" valign="top"><a href="produtos_detalhe.html"><img src="produtos/thumb1.jpg" width="115" height="115" border="0" /></a></td>

<td width="165" align="left" valign="top"><a href="produtos_detalhe.html"><img src="produtos/thumb2.jpg" width="115" height="115" border="0" /></a></td>

<td width="165" align="left" valign="top"><a href="produtos_detalhe.html"><img src="produtos/thumb3.jpg" width="115" height="115" border="0" /></a></td>

<td width="165" align="left" valign="top"><a href="produtos_detalhe.html"><img src="produtos/thumb4.jpg" width="115" height="115" border="0" /></a></td>

</tr>

<tr>

<td align="left" valign="top"><span class="style2">NOME PRODUTO</span><br />

<span class="style4">Pequeno detalhe<br />

Pequeno detalhe</span><br />

<span class="style5"><a href="produtos_detalhe.html" class="style5">+INFO</a></span><br /></td>

<td align="left" valign="top"><span class="style2">NOME PRODUTO</span><br />

<span class="style4">Pequeno detalhe<br />

Pequeno detalhe</span><br />

<a href="produtos_detalhe.html" class="style5">+INFO</a><a href="#" class="style5"></a></td>

<td align="left" valign="top"><span class="style2">NOME PRODUTO</span><br />

<span class="style4">Pequeno detalhe<br />

Pequeno detalhe</span><br />

<a href="produtos_detalhe.html" class="style5">+INFO</a><a href="#" class="style5"></a></td>

<td align="left" valign="top"><span class="style2">NOME PRODUTO</span><br />

<span class="style4">Pequeno detalhe<br />

Pequeno detalhe</span><br />

<a href="produtos_detalhe.html" class="style5">+INFO</a><a href="#" class="style5"></a></td>

</tr>

<tr>

<td height="30" colspan="4" align="left" valign="middle"><hr size="1" noshade="noshade" class="rule_linha" /></td>

</tr>

 

</table>

mas nao consigo fazer isto em php..

 

Alguem me pode dar uma dica?

o cod que tenho em php para ir a base de dados é:

 

<table width="652" border="0" cellspacing="5" cellpadding="0">
		<?php

								require_once ("connect.php"); connect();

								$listmsg = "select  id_produto, foto, nome, desc from produto";
								$result=mysql_query($listmsg);
								while ($rows=mysql_fetch_row($result))
								{
									$id_produto = "$rows[0]"; 
								echo ("<tr><td>$rows[1]</td></tr>	");
										
								
								}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro é que você está gerando um par <tr></tr> em cada volta do laço.

Veja que no HTML estático, você só tem aberturas de novas linhas em cada 4 tds... faça um condicional...

 

algo como:

if( $i % 4 == 0 ) // ai sim imprime os trs..

 

Mas ainda seria melhor se você trabalhasse simplesmente com UL LI.. flutando cada LI com css, apenas controlando a largura do UL, você não precisa dessa manobra toda que teria que fazer com tabelas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ou tambem pode faze com div ..

 

<?php
do {
?>
 
<div style="width:25%; float:left;">
   <table width="203" border="1" align="left">
  <tr>
	<td> <div align="center"> <?php echo $linha['fabricanteacessorio'].' '.$linha['nomeacessorio'];?></div></td>
	<td> </td>
  </tr>
  <tr>
	<td> <div align="center"> <img src="img/<?php echo $linha['img1']; ?>" width="150" height="150"></div></td>
	<td> <div align="center"> <?php echo $linha['peqdescricaoacessorio'];?></div></td>
  </tr>
  <tr>
	<td>Detalhes <a href="detalhesacessorios.php?id=<?php echo $linha['idacessorio'];?>">Aqui</a> </td>
	<td> </td>
  </tr>
</table>
</div>
<?php } while($linha = mysql_fetch_assoc($query));?>

valww

Compartilhar este post


Link para o post
Compartilhar em outros sites

A idéia dos TRs, é essa aqui:

$i =0;
echo '<tr>';
					while ($rows=mysql_fetch_row($result))
					{
							  $id_produto = "$rows[0]";
							  echo '<td>'.$rows[1].'</td>';
								  
							   if( $i % 4 == 0 )	  
									echo '</tr><tr>';
							   $i++; //atualiza o contador	
					}
echo '</tr>';
Não testei, pq tô na facul.. mas vê ai.

Com UL LI, seria parecido, mas sem o contador...

você imprimiria o <ul> antes do laço, e o </ul> depois... e dentro os <li></li>, em vez de td..

Ai no css, você flutua os li..

 

ul li {

float: left;

}

e taria feito. Acho que fica até mais semântico, pois é uma 'listagem' de produtos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

já tenho as coisas com ul e li, até aqui esta tudo muito bem, o meu problema é criar a rotina no php com a consulta da base de dados,ou seja ele mostra 4 produtos cria a linha para separar e volta a escrever 4 produtos assim sucessivamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você fizer com UL, LI nem precisa criar a linha.. basta dar um border-bottom nos LI..

e setar um width pro UL, que vá quebrar os LI à cada 4 LI..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fazer rotina para.. ??

Como você fez ? que HTML tá gerando..

Compartilhar este post


Link para o post
Compartilhar em outros sites

este é o html:

 

<div id="produtos">
	   <ul>
	   		<li><a href="produtos_detalhe.html"><img src="produtos/thumb1.jpg" width="115" height="115" border="0" /></a>
			<h1>nome</h1>
			<p>desc</p>
			</li>
	   </ul>
	   </div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boas noticias, tenho as coisas a funcionar com ul e li... mas queria fazer o limite de 12 produtos por pág alguma dica para isso?

 

desde já um muito obrigado pela ajuda que me tem dado.

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.