Jump to content


Photo

Duvida Com Um Calendario Simples.


  • Faça o login para participar
4 replies to this topic

#1 Layout WebHost

Layout WebHost

    Normal

  • Usuários
  • 95 posts
  • Sexo:Não informado

Posted 20/11/2006, 11:17

Pessoal, peguei um daqueles calendarios em PHP na internet e estou adaptando ele as minhas necessidades.

Vou usar ele para exibir agendamentos, e agora me deparei com uma parte que nao consegui fazer.

O sistema tera um form para o visitante fazer uma busca pelo nome dele por exemplo, entao o calendario inicialmente é exibido com todos os eventos agendados, exibindo de qualquer visitante.

Ai queria que quando o visitante buscar pelo nome dele, o cadalendario exibir somente as datas agendadas correspondente a aquele nome que ele buscou. Eu consegui fazer, so que tem um problema, no mysql tem 2 datas cadastradas e 2 nomes cadastrados, um para cada data, ai quando busco por um nome, ele exibi no calendario a data em destaque mais ele retira do calendario a outra data do outro nome cadastrado no mysql.

Nao sei se vao entender o que coloquei :) espero que tenha explicado bem, o calendario é:

<?php
   //inclui a configuraçao do bd
   include "admin/config.php";

   //Define o mês do calendário
   if (isSet($_GET['mes']))
	  $mes = $_GET['mes'];
   else
	  $mes = @date("m", @mktime());

   //Define o ano do calendário
   if (isSet($_GET['ano']))
	  $ano = $_GET['ano'];
   else
	  $ano = @date("Y", @mktime());

   //Cria um array com os dias da semana
   $semana = array("<font color=\"#FF0000\">Dom</font>","Seg","Ter","Qua","Qui","Sex","Sáb");

   //Define o nome do mês de acordo com o mês do calendário
   switch ($mes) {
	  case 1:  $n_mes = "Janeiro";		break;
	  case 2:  $n_mes = "Fevereiro";	break;
	  case 3:  $n_mes = "Março";		break;
	  case 4:  $n_mes = "Abril";		break;
	  case 5:  $n_mes = "Maio";		break;
	  case 6:  $n_mes = "Junho";		break;
	  case 7:  $n_mes = "Julho";		break;
	  case 8:  $n_mes = "Agosto";		break;
	  case 9:  $n_mes = "Setembro";	break;
	  case 10: $n_mes = "Outubro";		break;
	  case 11: $n_mes = "Novembro";	break;
	  case 12: $n_mes = "Dezembro";	break;
   }

   //Define qual é o próximo ano e o próximo mês
   $proximoAno = @date("Y", @mktime(0,0,0,$mes + 1,1,$ano));
   $proximoMes = @date("m", @mktime(0,0,0,$mes + 1,1,$ano));

   //Define qual é o ano e o mês anterior
   $anteriorAno = @date("Y", @mktime(0,0,0,$mes - 1,1,$ano));
   $anteriorMes = @date("m", @mktime(0,0,0,$mes - 1,1,$ano));
?>


<?
//Mostra o cabeçalho da tabela
?>

<table bgcolor="#EEEEEE" width="160" border="0" align="center" cellpadding="1" cellspacing="1">
<tr> 
   <td colspan="7" align="center" class="preto">
   <a class='preto' href="index.php?pagina=Agenda&mes=<? echo $anteriorMes; ?>&ano=<? echo $anteriorAno; ?>">«</a>&nbsp;
   <b><? echo "$n_mes $ano"; ?></b>&nbsp;
   <a class='preto' href="index.php?pagina=Agenda&mes=<? echo $proximoMes; ?>&ano=<? echo $proximoAno; ?>">»</a></td>
</tr>

<?
//Mostra os dias da semana
?>

<tr align="center">

<?
   for ($i = 0; $i < 7; $i++) {
?>

	  <td align="center" bgcolor=#C0C0C0><b><? echo "$semana[$i]"; ?></td>
<?
   }
?>

</tr>

<tr align="center">
<?
   $start = @date ("w", @mktime(0,0,0,$mes,1,$ano));
   for($a = ($start-1); $a >= 0; $a--) {
	  $dia = @date("t", @mktime(0,0,0,$mes-1,1,$ano)) - $a;
?>

	  <td bgcolor="#EEEEEE" align="center"><?= $dia; ?></td>

<?
   }
   for($dia = 1; $dia <= @date("t", @mktime(0,0,0,($mes+1),0,$ano) - 1); $dia++) {
	  if($mes == @date("m") & $ano == @date("Y") & $dia == @date("d"))
		 $bg = "bgcolor=\"#AAFFAA\"";
	  else
		 $bg = "bgcolor=\"#CDCDCD\"";

	  $evento = "$dia";
	  $evento.= "$n_mes$ano";
	  
	  $busca_evento = mysql_fetch_array(mysql_query("SELECT * FROM $tabela_agenda WHERE data = '".$evento."'"));

	  if ($busca_evento == '') {
?>

		 <td <?= $bg; ?> align="center"><?= $dia; ?></td>

<?
	  } elseif($_GET[condominio] == '' || $busca_evento == '') {
?>
		 <td bgcolor="#00CC00" align="center" onClick=java script:window.open('<? echo "index.php?pagina=Agenda.Ver&data=$evento"; ?>','','scrollbars=yes,width=350,height=250');><?= $dia ?></a></td>
		 
<?
	  } else {
	  $busca_evento_condominio = mysql_query("SELECT * FROM $tabela_agenda WHERE data = '".$evento."' AND condominio = '".$_GET[condominio]."'");

?>
<td bgcolor='#00CC00' align='center'><a href='index.php?pagina=Agenda.Ver&condominio=<? echo $_GET[condominio]; ?>&data=$evento' class='texto_menu_calendario'><?= $dia; ?></a></td>
<?
	  }
	  if(@date("w", @mktime(0,0,0,$mes,$dia,$ano)) == 6) {
?>

		 </tr>
		 <tr align="center">


<?
	  }
   }

   $dia = 0;
   while(@date("w", @mktime(0,0,0,($mes+1),$dia,$ano)) < 6) {
?>

	  <td bgcolor="#EEEEEE" align="center"><?= $dia+1; ?></td>

<?
	  $dia++;
   }
?>
</tr>
</table>

Onde parei(fica bem no final do codigo):
	  } else {
	  $busca_evento_condominio = mysql_query("SELECT * FROM $tabela_agenda WHERE data = '".$evento."' AND condominio = '".$_GET[condominio]."'");

?>
<td bgcolor='#00CC00' align='center'><a href='index.php?pagina=Agenda.Ver&condominio=<? echo $_GET[condominio]; ?>&data=$evento' class='texto_menu_calendario'><?= $dia; ?></a></td>

Alguem pode me ajudar e resolver isso?

#2 kleryson

kleryson

    Mestre

  • Usuários
  • 687 posts
  • Sexo:Masculino

Posted 20/11/2006, 14:02

Não entendi direito...

O que está acontecendo é isso:

1) Exibi corretamente quando abrimos a página com todos os dados ok??

2) Quando você pesquisa pelo nome simplesmente elimina todos os outros dados do calendário e aparece apenas o dado consultado é isso??

O que você deseja então??

É que na hora que faz a consulta você dê destaque no nome consultado mas não elimine as outras informação é isso??

#3 Layout WebHost

Layout WebHost

    Normal

  • Usuários
  • 95 posts
  • Sexo:Não informado

Posted 20/11/2006, 14:52

Isso mesmo, pq é assim tem la o registro no mysql:

20Novembro2006 - Evento1
21Novembro2006 - Evento2

Quando busco por Evento1 ele exibe o calendario normal com as datas sem registros e o dia 20 com um link, so que o dia 21 some, fica só o quadrinho la da tabela em branco entendeu, entao ele remove do calendario as datas que tem evento cadastrados e que nao sao do Evento1 que busquei...

Alguem pode me ajudar?

#4 kleryson

kleryson

    Mestre

  • Usuários
  • 687 posts
  • Sexo:Masculino

Posted 20/11/2006, 22:51

Então isso deve estar ocorrêndo pois você está fazendo uma consulta só...

O que você tem que fazer é assim:

Monta o calendário colocando todos as datas de eventos que você tem...

Depois você faz uma nova consulta para pegar o evento desejado e destacar ele...

#5 Layout WebHost

Layout WebHost

    Normal

  • Usuários
  • 95 posts
  • Sexo:Não informado

Posted 22/11/2006, 08:22

Eu tentei fazer mais nao consegui, fica dando este erro ai, de sumir as datas que tem registros de outras pessoas.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq