Ir para conteúdo
Fórum CódigoFonte.net
Lionel Mello

Dúvida para criar as páginas de um calendário (Calendário funcionando)

Recommended Posts

Bom dia pessoal,

Tô todo enrolado aqui, será que algume poderia me ajudar ?

Tenho um calendário em PHP rodando (ver calendario) está tudo funcionando, minha dúvida pode ser totalmente banal, mas pra mim é dúvida..

quando clico em uma data no calendário, o mesmo direciona para uma página, ex.:

Cliquei na data de hoje (16/07/2008) no calendário, e ele me direcionou para essa página:

http://www.gigabaladas.com/cal/2/calendario.php?data=16/07/2008

eu gostaria de saber como eu devo fazer pra inserir dados nessa página (calendario.php?data=16/07/2008)

e o que eu teria que fazer para que quando o usuario clicar em alguma data ele buscar os eventos cadastrados para tal data (imagino que em um banco de dados MySQL).

qdo o usuario clicar no dia 18/07/2008 aparecer uma página referente aos eventos desta data e assim em diante..

Espero que tenham me entendido, aguardo qualquer ajuda. :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom se eu etendi o que vc quer vc pode fazer alguma coisa do tipo:

<?php

vc pode deixar o calendario aki, para aparecer todas as vezes q vc clidar em uma data

if($_POST){

aki vc coloca a pagina em si, faz a busca no banco com $_POST["data"], e coloca os valores;

}

?>

espero ter ajudado, qqer duvida tamu ai....

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom vc teria que criar uma tabela eventos por exemplo no mysql la vc bota os campos nexcessario eh quamdo carregar a pagina vc faz uma busca no mysql com aquela data citada(uma query) eh lista o resultado na oagina

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom se eu etendi o que vc quer vc pode fazer alguma coisa do tipo:

<?php

vc pode deixar o calendario aki, para aparecer todas as vezes q vc clidar em uma data

if($_POST){

aki vc coloca a pagina em si, faz a busca no banco com $_POST["data"], e coloca os valores;

}

?>

espero ter ajudado, qqer duvida tamu ai....

Poise, essa parte que não sei fazer, eu tenho banco de dados acessível, ainda nao criei as tabelas, mas isso tb sei criar.

Não sei como buscar no banco com $_POST["data"], como deveria ser essa query e esses valores que vc mencionou?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom vou tentar te ajudar dando um exemplo de como montar uma tabela por exempro pegando o nome e o sobre nome do banco(supondo que seja mysql, q vc mencionol), e q nome é um campo e sobrenome outro.

a tabela:

nome | Sobre nome | Data

------------------------------------

Nome1 | Sobrenome 1 |10/10/2008

Nome2 | Sobrenome 2 |20/10/2008

Nome3 | Sobrenome 3 |10/10/2008

Agora o codigo php:

conectar com o banco:

  $conn = mysql_connect($host,$usuario,$senha); // $host é onde esta seu banco, exemplo se estiver na sua maquina msm é localhost
                                                                         //ai vc coloca seu usuraio e senha;
Agora vc precisa selecionar um dataBase(a base onde estao as tabelas)
  mysql_select_db($dataBase,$conn);//$dataBase é o nome da sua base
Agora a sql com a data q vem da URL, só uma correção nao é $_POST e sim $_GET
  $sql = "SELECT nome, sobrenome FROM pessoa WHERE data =".$_GET["data"];
  $rs = mysql_query($sql,$conn) or die(mysql_error()); // essa linha executa a sql
Agora vou montar a tabela em html:
<html>
<body>
<table border="2">
<tr>
  <td>Nome</td>
  <td>Sobrenome</td>
</tr>
<?php
while($row = mysql_fetch_array($rs)){  
    echo "<tr>
            <td>".$row['nome']."</td>
            <td>".$row['sobrenome']."</td>
          </tr>";    
}?>
</table>
</html>
</body>
Agora vou colocar o codigo na integra:
<html>
<body>
<?php
  $conn = mysql_connect($host,$usuario,$senha);
  mysql_select_db($dataBase,$conn); 
  $sql = "SELECT nome, sobrenome FROM pessoa WHERE data =".$_GET["data"];
  $rs = mysql_query($sql,$conn) or die(mysql_error()); // essa linha executa a sql
?>
<table border="2">
<tr>
  <td>Nome</td>
  <td>Sobrenome</td>
</tr>
<?php
while($row = mysql_fetch_array($rs)){  
    echo "<tr>
            <td>".$row['nome']."</td>
            <td>".$row['sobrenome']."</td>
          </tr>";    
}?>
</table>
</html>
</body>

Bom é isso...simples né?!..hehe...mais qqer duvida só postar..

té mais

Compartilhar este post


Link para o post
Compartilhar em outros sites

pra vcs entenderem melhor

Eu tenho o calendario rodando e funcionando em PHP

Tenho um banco de dados prontinho para rodar as tabelas, mas não sei quais campos criar e nem que TIPO eu uso pra cada campo.

Eu não sei como vou fazer pro php buscar esses dados no banco qdo o usuario clicar na data no calendario.

eu gostaria de montar uma agenda como essa : agenda semelhante

:huh:

Bom vou tentar te ajudar dando um exemplo de como montar uma tabela por exempro pegando o nome e o sobre nome do banco(supondo que seja mysql, q vc mencionol), e q nome é um campo e sobrenome outro.

a tabela:

nome | Sobre nome | Data

------------------------------------

Nome1 | Sobrenome 1 |10/10/2008

Nome2 | Sobrenome 2 |20/10/2008

Nome3 | Sobrenome 3 |10/10/2008

Agora o codigo php:

conectar com o banco:

  $conn = mysql_connect($host,$usuario,$senha); // $host é onde esta seu banco, exemplo se estiver na sua maquina msm é localhost
                                                                         //ai vc coloca seu usuraio e senha;
Agora vc precisa selecionar um dataBase(a base onde estao as tabelas)
  mysql_select_db($dataBase,$conn);//$dataBase é o nome da sua base
Agora a sql com a data q vem da URL, só uma correção nao é $_POST e sim $_GET
  $sql = "SELECT nome, sobrenome FROM pessoa WHERE data =".$_GET["data"];
  $rs = mysql_query($sql,$conn) or die(mysql_error()); // essa linha executa a sql
Agora vou montar a tabela em html:
<html>
<body>
<table border="2">
<tr>
  <td>Nome</td>
  <td>Sobrenome</td>
</tr>
<?php
while($row = mysql_fetch_array($rs)){  
    echo "<tr>
            <td>".$row['nome']."</td>
            <td>".$row['sobrenome']."</td>
          </tr>";    
}?>
</table>
</html>
</body>
Agora vou colocar o codigo na integra:
<html>
<body>
<?php
  $conn = mysql_connect($host,$usuario,$senha);
  mysql_select_db($dataBase,$conn); 
  $sql = "SELECT nome, sobrenome FROM pessoa WHERE data =".$_GET["data"];
  $rs = mysql_query($sql,$conn) or die(mysql_error()); // essa linha executa a sql
?>
<table border="2">
<tr>
  <td>Nome</td>
  <td>Sobrenome</td>
</tr>
<?php
while($row = mysql_fetch_array($rs)){  
    echo "<tr>
            <td>".$row['nome']."</td>
            <td>".$row['sobrenome']."</td>
          </tr>";    
}?>
</table>
</html>
</body>

Bom é isso...simples né?!..hehe...mais qqer duvida só postar..

té mais

Bom, mandei uma resposta antecipada, sem ver essa sua ajuda.

Assim que der vou testar, mas vendo pelo que você passou, parece q vai me ajudar muito, desde já agradeço a ajuda de todos.

Att.

Lionel Mello

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde,

cara segui seus passos, mas ja tentando adaptar para minha agenda, abaixo vou passar o código da agenda que esta rodando em meu site e a adaptação que fiz com essa ajuda que vc me deu, vc poderia dar uma olhada no que acontece ?

Acho que deve ter mta gente procurando uma solução igual a minha..

calendario.php

<link rel="stylesheet" type="text/css" href="calendario.css"> 
<?  
class calendario{  
  var $mes = array( 
                   '01' => 'JANEIRO', 
                   '02' => 'FEVEREIRO', 
                   '03' => 'MARÇO', 
                   '04' => 'ABRIL', 
                   '05' => 'MAIO', 
                   '06' => 'JUNHO', 
                   '07' => 'JULHO', 
                   '08' => 'AGOSTO', 
                   '09' => 'SETEMBRO', 
                   '10' => 'OUTUBRO', 
                   '11' => 'NOVEMBRO', 
                   '12' => 'DEZEMBRO' 
                  ); 

  function mes_anterior($dia,$mes,$ano){ 
    if($mes == 1){ 
       $man = 12; 
       $aan = $ano - 1; 
    } else { 
       $man = $mes - 1; 
       $aan = $ano; 
    } 

    $val = checkdate($man,$dia,$aan); 
    if($val == 0){ 
      $dia = 1; 
    } 
    echo '<a href="calendario.php?data='.sprintf("%02.0f",$dia).'/'.sprintf("%02.0f",$man).'/'.$aan.'">«</a>'; 
  } 

  function mes_proximo($dia,$mes,$ano){ 
    if($mes == 12){ 
       $mpr = 1; 
       $apr = $ano + 1; 
    } else { 
       $mpr = $mes + 1; 
       $apr = $ano; 
    } 

    $val = checkdate($mpr,$dia,$apr); 
    if($val == 0){ 
      $dia = 1; 
    } 
    echo '<a href="calendario.php?data='.sprintf("%02.0f",$dia).'/'.sprintf("%02.0f",$mpr).'/'.$apr.'">»</a>'; 
  } 

  function ano_anterior($dia,$mes,$ano){ 
    $aan = $ano - 1; 
    echo '<a href="calendario.php?data='.sprintf("%02.0f",$dia).'/'.sprintf("%02.0f",$mes).'/'.$aan.'">«</a>'; 
  } 

  function ano_proximo($dia,$mes,$ano){ 
    $apr = $ano + 1; 
    echo '<a href="calendario.php?data='.sprintf("%02.0f",$dia).'/'.sprintf("%02.0f",$mes).'/'.$apr.'">»</a>'; 
  } 
   
  function cria($data){ 
    $arr = explode("/",$data); 
    $dia = $arr[0]; 
    $mes = $arr[1]; 
    $ano = $arr[2]; 

    if(($dia == '') OR ($mes = '') OR ($ano = '')){ 
      $data = date("d/m/Y"); 
      $arr = explode("/",$data); 
      $dia = $arr[0]; 
      $mes = $arr[1]; 
      $ano = $arr[2]; 
    } 

    $arr = explode("/",$data); 
    $dia = $arr[0]; 
    $mes = $arr[1]; 
    $ano = $arr[2]; 

    $val = checkdate($mes,$dia,$ano); // Verifica se a data é válida 
    if($val == 1){ 
      $ver = date('d/m/Y', mktime(0,0,0,$mes,$dia,$ano)); 
    } else { 
      $ver = date('d/m/Y', mktime(0,0,0,date(m),date(d),date(Y))); 
    } 

    $arr = explode("/",$ver); 
    $dia = $arr[0]; 
    $mes = $arr[1]; 
    $ano = $arr[2]; 

    $ult = date("d", mktime(0,0,0,$mes+1,0,$ano)); 
    $dse = date("w", mktime(0,0,0,$mes,1,$ano)); 

    $tot = $ult+$dse; 
    if($tot != 0){ 
      $tot = $tot+7-($tot%7); 
    } 

    for($i=0;$i<$tot;$i++){ 
      $dat = $i-$dse+1; 
      if(($i >= $dse) AND ($i < ($dse+$ult))){ 
        $aux[$i]  = ' 
          <td '; 

        if(($dat == date(d)) AND ($mes == date(m)) AND ($ano == date(Y))){ 
          $aux[$i] .= 'class="calendario_dias_hoje"'; 
        } else { 
          $aux[$i] .= 'class="calendario_dias"'; 
        } 

        if(($dat == date(d)) AND ($mes == date(m)) AND ($ano == date(Y))){ 
          $aux[$i] .= 'class="calendario_links_hoje"'; 
        } else { 
          $aux[$i] .= 'class="calendario_links"'; 
        } 
         
        $aux[$i] .= '><a href="calendario.php?data='.sprintf("%02.0f",$dat).'/'.$mes.'/'.$ano.'">'.$dat.'</a> 
          </td> 
        '; 
      } else { 
        $aux[$i] = ' 
          <td> 
          </td> 
        '; 
    } 

    if(($i%7) == 0){ 
      $aux[$i] = '<tr align="center">'.$aux[$i]; 
    } 

    if(($i%7) == 6){ 
      $aux[$i] .= '</tr>'; 
    } 
  } 

  echo ' 
  <table cellspacing="0" cellpadding="0" class="calendario_tabela"> 
    <tr> 
      <td> 
        <table cellspacing="1" cellpadding="1"> 
          <tr class="calendario_mes_ano"> 
            <td> 
  '; 
  $this->mes_anterior($dia,$mes,$ano); 
  echo ' 
            </td> 
            <td colspan="5">'.$this->mes[$mes].'</td> 
            <td> 
  '; 
  $this->mes_proximo($dia,$mes,$ano); 
  echo ' 
</td> 
          </tr> 

          <tr class="calendario_mes_ano"> 
            <td> 
  '; 
  $this->ano_anterior($dia,$mes,$ano); 
  echo ' 
            </td> 
            <td colspan="5">'.$ano.'</td> 
            <td> 
  '; 
  $this->ano_proximo($dia,$mes,$ano); 
  echo ' 
            </td> 
          </tr> 

          <tr class="calendario_semana"> 
            <td WIDTH="30">D</td> 
            <td WIDTH="30">S</td> 
            <td WIDTH="30">T</td> 
            <td WIDTH="30">Q</td> 
            <td WIDTH="30">Q</td> 
            <td WIDTH="30">S</td> 
            <td WIDTH="30">S</td> 
          </tr> 
  '; 
  echo implode(' ',$aux); 
  if(count($aux) == 35){ 
    echo ' 
          <tr> 
            <td colspan="7"> </td> 
          </tr> 
    '; 
  }; 
  echo ' 
          <tr> 
            <td class="calendario_mes_ano" colspan="7" align="center">[ <a href="calendario.php?data='.date(d).'/'.date(m).'/'.date(Y).'">Hoje</a> ]</td> 
          </tr> 
        </table> 
      </td> 
    </tr> 
  </table> 
  '; 
   }  
}  

$teste = new calendario; 
$teste->cria($_GET["data"]); 
?>

<?php include("config.php") ?>

<?php
  $conn = mysql_connect($host, $usuario, $senha);
  mysql_select_db($dataBase,$conn); 
  $sql = "SELECT * FROM cal_eventos WHERE data =".$_GET["data"];
  $rs = mysql_query($sql,$conn) or die(mysql_error()); // essa linha executa a sql
        echo $_GET["data"];
?>

<table border="2">
<tr>
  <td>Casa</td>
  <td>Evento</td>
</tr>
<?php
while($row = mysql_fetch_array($rs)){  
    echo "<tr>
            <td>".$row['casa_noturna']."</td>
            <td>".$row['titulo']."</td>
            <td>".$row['data']."</td>
            <td>".$row['desc']."</td>
          </tr>";    
}?>
</table>

e a estrutura mysql é:

ID | casa_noturna | titulo | data | desc

o campo data no MySQL nao é do tipo DATE e sim do tipo VARCAR(10) onde eu preencho a data assim: dd/mm/aaaa

a tabela tem 2 eventos cadastrados

um no dia 19/07/2008 e outro no dia 21/07/2008 só para testes...

Compartilhar este post


Link para o post
Compartilhar em outros sites

passa como string a data (veja se está buscando no formato correto yyyy/mm/dd)

$sql = "SELECT * FROM cal_eventos WHERE data =\"".$_GET["data"]."";

Compartilhar este post


Link para o post
Compartilhar em outros sites

passa como string a data (veja se está buscando no formato correto yyyy/mm/dd)

$sql = "SELECT * FROM cal_eventos WHERE data =\"".$_GET["data"]."";

troquei minha linha $sql... por essa sua, qdo fui testar, clico na data do calendario da esse erro (no caso desse erro cliquei no dia 19):

Você tem um erro de sintaxe no seu SQL próximo a '"19/07/2008' na linha 1

a data cadastrada no banco esta assim:

19/07/2008 e o TIPO do campo no MySQL é VARCHAR(10) e Não é do tipo DATE

Compartilhar este post


Link para o post
Compartilhar em outros sites

RESOLVIDO !

Fiz da seguinte maneira:

  $data_atual = $_GET["data"];
  $sql = "SELECT * FROM tabela WHERE data = '$data_atual'";
  $rs = mysql_query($sql,$conn) or die(mysql_error());

Pra ver funcionando é só entrar AQUI e clicar em AGENDA (Esse design novo ainda nao foi ao ar)

vlw pra quem deu idéias de soluções.

Att.

Lionel Mello

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×
×
  • Criar Novo...