Ir para conteúdo

POWERED BY:

Arquivado

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

DouglasP

[Resolvido] Adicionar <TR>

Recommended Posts

Boa tarde,

tenho o seguinte codigo:

 

$query = "SELECT id,Tipo,Titulo,local,datahora from clive_noticias where Tipo = 'balada' order by id desc";
$result = mysql_query( $query );

for($i=0;$i < mysql_num_rows($result);++$i)
{
$row = mysql_fetch_row($result);

$titulo		= utf8_decode($row[2]);
$local		= utf8_decode($row[3]); 
$datahora	= utf8_decode($row[4]); 

echo '<tr><td onMouseOver="MM_effectHighlight(this, 1000, \'#CFCFCF\', \'#E8E8E8\', \'#E8E8E8\', false)">-   <font size=\'1\' face=\'Verdana\' color=\'#363636\'><strong>'.$titulo.'</strong></font><font size=\'1\' face=\'Arial\' color=\'#4F4F4F\'><br>
					<br>
					'.$local.'<br>
					'.$datahora.'</font></td>';
}
prem preciso que ele feche o <tr> a cada 2 <td>, no caso ficando um retangulo.

a tabela deveria ficar assim:

 

Imagem Postada

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça um contador interno (variável incremento), a cada duas "passadas" no loop você imprime uma tag de fechamento e abertura </tr><tr>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Precisa ser com tabelas ?

com UL LI, é tão mais simples.. basta flutuar o LI.. e definir uma largura pro UL q caiba somente 2 LI.. que vai tudo acontecer naturalmente, pelo fluxo HTML.. e você só vai precisar programar o laço php, sem nenhum contador.

 

Exemplo com o banco que tenho aqui:

<style>
#listagem {
	width: 450px;
}
#listagem li {
	width: 200px;
	float: left;
	background-color: #f0f;
	margin: 10px;
}

</style>
<?php
$con = mysql_connect('localhost','root','123');
$db = mysql_select_db('noticia', $con);

$sql = "SELECT * FROM `artigo` ORDER BY `id` DESC LIMIT 15";
$q = mysql_query( $sql )or die( mysql_error() );

echo '<h2>Aqui listo as notícias que tão no banco</h2>';
echo '<ul id="listagem">';
while($dados = mysql_fetch_assoc( $q ) )
{
	echo '<li>'.$dados['artigo'].'</li>';
}
echo '</ul><!--/ fecha listagem -->';
?>
importante ai pra você, é ver os

<ul>

<li></li>

<li></li>

<li></li>

<li></li>

</ul>, entender que cada <li></li>, é onde vai teu conteudo.. e só se preocupar com o loop disso.

Pois o CSS vai jogar um do lado do outro naturalmente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

já fiz muuuito isso já, mas com listas é bem mais simples...

 

vou ver se lembro:

<table>
	<tr>
		<?php
		$n = 0;
		while (condicao) {
			echo "<td>blablabla</td>";
			$n++;
			if ($n == 2) {
				echo "</tr><tr>";
				$n = 0;
			}
		}
		?>
	</tr>
</table>

Bom, acho que deve funcionar, se não, posta aí que eu vejo o que deu errado xD...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem outra forma de fazer...

como conferir se o número é divisor de outro, com o operador %.

No caso acima, basta iniciar o contador em 1, e colocar o </tr><tr> .. depois que o contador chegar num número par..

$n % 2 == 0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse caso, ficaria assim:

 

<table>
	<tr>
		<?php
		$n = 0;
		while (condicao) {
			echo "<td>blablabla</td>";
			$n++;
			if ($n % 2 == 0) {
				echo "</tr><tr>";
			}
		}
		?>
	</tr>
</table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei assim:

 

$n = 0;
		while ($n<=2) {

echo '<td onMouseOver="MM_effectHighlight(this, 1000, \'#CFCFCF\', \'#E8E8E8\', \'#E8E8E8\', false)">-   <font size=\'1\' face=\'Verdana\' color=\'#363636\'><strong>'.$titulo.'</strong></font><font size=\'1\' face=\'Arial\' color=\'#4F4F4F\'><br>
					<br>
					'.$local.'<br>
					'.$datahora.'</font></td>';
$n++;
if ($n % 2 == 0) {
echo "</tr><tr>";
}
}			
}

porem ele exibe 3 dados de cada, ja pulando os espaços certos.

 

esse é o script completo ja com a alteração:

 

$query = "SELECT id,Tipo,Titulo,local,datahora from clive_noticias where Tipo = 'balada' order by id desc";
$result = mysql_query( $query );

for($i=0;$i < mysql_num_rows($result);++$i)
{
$row = mysql_fetch_row($result);

$titulo		= utf8_decode($row[2]);
$local		= utf8_decode($row[3]); 
$datahora	= utf8_decode($row[4]);

		$n = 0;
		while ($n<=2) {

echo '<td onMouseOver="MM_effectHighlight(this, 1000, \'#CFCFCF\', \'#E8E8E8\', \'#E8E8E8\', false)">-   <font size=\'1\' face=\'Verdana\' color=\'#363636\'><strong>'.$titulo.'</strong></font><font size=\'1\' face=\'Arial\' color=\'#4F4F4F\'><br>
					<br>
					'.$local.'<br>
					'.$datahora.'</font></td>';
$n++;
if ($n % 2 == 0) {
echo "</tr><tr>";
}
}			
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

arrumei, o certo é assim:

 

$query = "SELECT id,Tipo,Titulo,local,datahora from clive_noticias where Tipo = 'balada' order by id desc";
$result = mysql_query( $query );

$n = 0;
while ($n<=2) {

for($i=0;$i < mysql_num_rows($result);++$i)
{
$row = mysql_fetch_row($result);

$titulo		= utf8_decode($row[2]);
$local		= utf8_decode($row[3]);
$datahora	= utf8_decode($row[4]);

echo '<td onMouseOver="MM_effectHighlight(this, 1000, \'#CFCFCF\', \'#E8E8E8\', \'#E8E8E8\', false)">-   <font size=\'1\' face=\'Verdana\' color=\'#363636\'><strong>'.$titulo.'</strong></font><font size=\'1\' face=\'Arial\' color=\'#4F4F4F\'><br>
					<br>
					'.$local.'<br>
					'.$datahora.'</font></td>';
					
$n++;
if ($n % 2 == 0) {
echo "</tr><tr>";
}
}}

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.