Ir para conteúdo

POWERED BY:

Arquivado

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

Diego Macêdo

Agenda: Condições em uma listagem de dados com repetição

Recommended Posts

Amigos,

 

fiz uma agenda de eventos. Mas estou tendo um pequeno problema.

A agenda deveria apresentar os dados assim:

 

10/06/2009
TITULO DO EVENTO
Local: NOME DO LOCAL
Atrações: BANDAS
INFORMAÇÕES ADICIONAIS

Existe uma linha para separar os eventos QUANDO eles são de datas DIFERENTES. Caso o evento seja no mesmo dia, ele NÃO DEVE exibir essa linha.

 

Esse script abaixo faz isso, mas só até 2 eventos. Como eu poderia fazer para ele não mostrar a linha caso as datas sejam iguais dos eventos independente de ser 2, 3 ou mais?

 

<table width="150" height="100%" border="0" cellpadding="0" cellspacing="10">
<?php
	$data_atual = date('d/m/Y');
	$sql  = mysql_query("SELECT * FROM `agenda` WHERE dt_inversa>='$dt_atual' ORDER BY dt_inversa ASC") or die(mysql_error());
	$dados = mysql_num_rows($sql);  
  
	  for($i = 0; $i < $dados; $i++){  
	  $titulo = @mysql_result($sql, $i, "titulo");
	  $local = @mysql_result($sql, $i, "local");
	  $bandas = @mysql_result($sql, $i, "bandas");
	  $info = @mysql_result($sql, $i, "info");
	  $dtnor = @mysql_result($sql, $i, "dt_normal");
	  $dtin = @mysql_result($sql, $i, "dt_inversa");	  
					 
		 if($dtin != $dtant){			
			 print '<tr>';
			 print '<td width="150" height="40" align="left" valign="top">';		  
			 print '<font class="agenda_data"><u>';
			 print $dtnor.'</u></font><br />';
			 print '<font class="agenda_evento">';
			 print $titulo.'</font><br>';
			 print '<font class="agenda_informacoes">';
			 print '<b>Local:</b> '. $local.'<br />';
			 print '<b>Atrações:</b> '. $bandas.'<br />';
			 print '<i> '.$info.'</i>';
			 print '</font><br />';
			 print '-----------------------';
			 print '</td>';
			 print '</tr>';
			 $dtant = $dtin;
		 }else{  
			 print '<tr>';
			 print '<td>';
			 print '<font class="agenda_evento">';
			 print $titulo.'</font><br>';
			 print '<font class="agenda_informacoes">';
			 print '<b>Local:</b> '. $local.'<br />';
			 print '<b>Atrações:</b> '. $bandas.'<br />';
			 print '<i> '.$info.'</i>';
			 print '</font><br />';
			 print '-----------------------';
			 print '</td>';
			 print '</tr>';
		 }
	}

?>
</table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade ele não faz apenas para dois eventos.

O que tu ta achando, é que isso:

 

if($dtin != $dtant){			
			 print '<tr>';
			 print '<td width="150" height="40" align="left" valign="top">';		  
			 print '<font class="agenda_data"><u>';
			 print $dtnor.'</u></font><br />';
			 print '<font class="agenda_evento">';
			 print $titulo.'</font><br>';
			 print '<font class="agenda_informacoes">';
			 print '<b>Local:</b> '. $local.'<br />';
			 print '<b>Atrações:</b> '. $bandas.'<br />';
			 print '<i> '.$info.'</i>';
			 print '</font><br />';
			 print '-----------------------';
			 print '</td>';
			 print '</tr>';
			 $dtant = $dtin;
		 }else{  
			 print '<tr>';
			 print '<td>';
			 print '<font class="agenda_evento">';
			 print $titulo.'</font><br>';
			 print '<font class="agenda_informacoes">';
			 print '<b>Local:</b> '. $local.'<br />';
			 print '<b>Atrações:</b> '. $bandas.'<br />';
			 print '<i> '.$info.'</i>';
			 print '</font><br />';
			 print '-----------------------';
			 print '</td>';
			 print '</tr>';
		 }

São dois eventos. Mas na verdade serve para todos.

O que pode estar acontecendo é que tu tenha apenas 2 eventos cadastrados.

Tu ja tentou cadastrar vários eventos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

São dois eventos. Mas na verdade serve para todos.

O que pode estar acontecendo é que tu tenha apenas 2 eventos cadastrados.

Tu ja tentou cadastrar vários eventos?

 

Já testei sim, por isso estou perguntando. Quando tem 3 ou mais eventos ele mostra novamente a linha e não deveria.

 

Resumindo, ele deveria mostrar TODOS os eventos daquele dia juntos, sem a linha, CASO seja de data diferente, ele botar a linha separando.

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.