Ir para conteúdo

POWERED BY:

Arquivado

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

anderluz

Trazer registros para o fullcalendar com php

Recommended Posts

Olá tudo bem? Galera estou tentando fazer uma agenda consegui criar os registros normalmente, o problema está em mostrar os registros no calendário fullcalendar, estou tendo muita dificuldade em obter os dados da tabela e mostrar elas, todos os tutoriais que encontrei a respeito utilizam uma sintaxe bastante complexa e POO. Galera abaixo um trecho do código que tentei adaptar de outro tuto..

<?php include_once("conexao.inc"); ?>
<?php
 
 
$seleciona   = "SELECT nome, dt_agendamento, horario, presenca
 FROM Agendamento A, Usuario u, Pessoa_fisica pf
 where a.cod_login = u.cod_login
 and pf.cod_pessoa_fisica = u.cod_pessoa_fisica
 group by cod_agendamento;";
 
$resultadoVerifica = mysql_query($seleciona);
$registrosVerifica = mysql_num_rows($resultadoVerifica);

if (mysql_num_rows($resultadoVerifica)>0){
                   while($row=mysql_fetch_array($resultado)){

$array['dt_agendamento'] = $row['dt_agendamento'];
$array['horario'] = $row['horario'];
$array['nome'] = $row['nome'];
$array['title']  = "Agendados";
$eventos[]  .= $array;
}
 
echo json_encode($eventos);
?>

Galera estou usando esse código para tentar trazer os dados do BD, estou usando programação orientada estruturada, e json para trazer os dados. Detalhe não entendo nada de json e estou utilizando os exemplos do demo do fullcalendar para poder trazer os dados, então o meu arquivo que cria o calendario chama o arquivo get-events, coloquei este codigo dentro, mas estou com muita dificuldade em compreender a logica de buscar os dados e repassar eles para o calendario com devidos dados (nome de usuario, dt_agendamento, horario/ varchar,date e varchar os dados respectivamente). Aguardo resposta, espero conseguir ajuda. Obrigado pelo empenho, grande abraço, até.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com PDO seria só isso:

$resultados = $conn->query('
    SELECT nome, dt_agendamento, horario, presenca
    FROM Agendamento A, Usuario u, Pessoa_fisica pf
    WHERE a.cod_login = u.cod_login AND pf.cod_pessoa_fisica = u.cod_pessoa_fisica
    GROUP BY cod_agendamento
')->fetchAll();
echo json_encode($resultados);

Isso não existe:

$eventos[] .= $array;

Acho que é isso que você queria:

$eventos[] = $array;

Mas lembre-se de iniciar a variável a cada iteração:

$array = array();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é, mas não estou com programação orientado a objetos se não me engano este $conn viria do conexao.inc né? mas está tudo estruturado, tem como resolver isso de uma forma simples independente de usar POO ou Estrutural?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou repassar todo o codigo, para poder visualizar melhor, este é todo o script que uso dento da minha pagina para renderizar o calendario, eu não entendo muito de javascript mas é para ele ser em portugues e sincronizar com o arquivo get-events.php

<script>
$(document).ready(function() {
		var currentLangCode = 'pt-br';
		
		function renderCalendar() {
			$('#calendar').fullCalendar({
				header: {
					left: 'prev,next today',
					center: 'title',
					right: 'month,agendaWeek,agendaDay'
				},
				lang: currentLangCode,
				buttonIcons: false, // show the prev/next text
				weekNumbers: true,
				editable: true,
				eventLimit: true, // allow "more" link when too many events
				
			});
		}

		renderCalendar();
	});
			$(document).ready(function() {
	
		$('#calendar').fullCalendar({
			header: {
				left: 'prev,next today',
				center: 'title',
				right: 'month,agendaWeek,agendaDay'
			},
			defaultDate: '2014-09-12',
			editable: true,
			eventLimit: true, // allow "more" link when too many events
			events: {
				url: 'libraries/fullcalendar/demos/php/get-events.php',
				error: function() {
					$('#script-warning').show();
				}
			},
			loading: function(bool) {
				$('#loading').toggle(bool);
			}
		});
		
		
	});

</script>

e este é o código atual dentro daquele arquivo get-event.php

<?php include_once("conexao.inc"); ?>
<?php
 error_reporting(E_ALL);
 
$seleciona   = $conn ->query ("SELECT nome, dt_agendamento, horario, presenca
 FROM Agendamento A, Usuario u, Pessoa_fisica pf
 where a.cod_login = u.cod_login
 and pf.cod_pessoa_fisica = u.cod_pessoa_fisica
 group by cod_agendamento;")->fetchAll();
 
echo json_encode($seleciona);
?>

coloquei ele não acusa erro, está renderizando o calendário em branco...


E o meu conexao.inc

<?php
// LOCAL
	$dbname = 'integrado2';
    $usuario = 'root';
    $password = '1234'; 
    $host = 'localhost';

    $conexao = mysql_connect($host,$usuario,$password);
	if(!($conexao))
    {
        echo "Não foi possível estabelecer uma conexão com o gerenciador MySQL.
		 Favor Contactar o Administrador.";
        exit;
    }
	
	$banco = mysql_select_db($dbname,$conexao);
    if(!($banco))
    {
        echo "Não foi possível encontrar o Banco de Dados. 
		Favor Contactar o Administrador.";
        exit;
    }
	
	mysql_set_charset('UTF8', $conexao);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use array_push, vai deixar mais limpo

...

$data = array();

while($row=mysql_fetch_array($resultado)){
	
	$data_db = array(
		'dt_agendamento' => $row['dt_agendamento'],
		'horario' => $row['horario'],
		'nome' => $row['nome'],
		'title' => 'Agendados',
	);
	
	array_push($data, $data_db);

}

...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Também não resolve, ajustei o codigo assim:

<?php include_once("conexao.inc"); ?>
<?php
 error_reporting(E_ALL);
 
$seleciona="SELECT nome, dt_agendamento, horario, presenca
 FROM Agendamento A, Usuario u, Pessoa_fisica pf
 where a.cod_login = u.cod_login
 and pf.cod_pessoa_fisica = u.cod_pessoa_fisica
 group by cod_agendamento;";
 
 $data = array();

 $resultadoVerifica = mysql_query($seleciona);
$registrosVerifica = mysql_num_rows($resultadoVerifica);

while($row=mysql_fetch_array($resultadoVerifica)){
	
	$data_db = array(
		'dt_agendamento' => $row['dt_agendamento'],
		'horario' => $row['horario'],
		'nome' => $row['nome'],
		'title' => 'Agendados',
	);
	
	$var = array_push($data, $data_db);

}

echo json_encode($var);
?>

Ele não lista no calendario, se entrar dentro do arquivo pelo navegador ele imprime o numero de registros no banco;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dentro do arquivo get-events.php ele lista agora todo os valores da seguinte forma.

 

[{"dt_agendamento":"2014-11-27","horario":"10:40","nome":"ANDR\u00c9 ","title":"Agendados"},{"dt_agendamento":"2014-11-20","horario":"07:40","nome":"ANDR\u00c9","title":"Agendados"},{"dt_agendamento":"2014-11-20","horario":"07:40","nome":"ANDR\u00c9 ","title":"Agendados"},{"dt_agendamento":"2014-11-21","horario":"07:40","nome":"ANDR\u00c9 ","title":"Agendados"}]

 

 

mas no calendario ainda não carrega, será que não está falantando algo no script que gera o calendario?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O arquivo que renderiza o calendario, troxe o arquivo que busca os arquivos para a raiz do projeto para facilitar:

<link rel='stylesheet' href='libraries/fullcalendar/lib/cupertino/jquery-ui.min.css' />
<link href='libraries/fullcalendar/fullcalendar.css' rel='stylesheet' />
<link href='libraries/fullcalendar/fullcalendar.print.css' rel='stylesheet' media='print' />
<script src='libraries/fullcalendar/lib/moment.min.js'></script>
<script src='libraries/fullcalendar/lib/jquery.min.js'></script>
<script src='libraries/fullcalendar/fullcalendar.min.js'></script>
<script src='libraries/fullcalendar/lang-all.js'></script>
<script>
$(document).ready(function() {
		var currentLangCode = 'pt-br';
		
		function renderCalendar() {
			$('#calendar').fullCalendar({
				header: {
					left: 'prev,next today',
					center: 'title',
					right: 'month,agendaWeek,agendaDay'
				},
				lang: currentLangCode,
				buttonIcons: false, // show the prev/next text
				weekNumbers: true,
				editable: true,
				eventLimit: true, // allow "more" link when too many events
				
			});
		}

		renderCalendar();
	});
			$(document).ready(function() {
	
		$('#calendar').fullCalendar({
			header: {
				left: 'prev,next today',
				center: 'title',
				right: 'month,agendaWeek,agendaDay'
			},
			defaultDate: '2014-09-12',
			editable: true,
			eventLimit: true, // allow "more" link when too many events
			events: {
				url: 'get-events.php',
				error: function() {
					$('#script-warning').show();
				}
			},
			loading: function(bool) {
				$('#loading').toggle(bool);
			}
		});
		
		
	});

</script>

o arquivo que busca os registros, o conexao também esta na raiz.

<?php include_once("conexao.inc"); ?>
<?php
 error_reporting(E_ALL);
 
$seleciona="SELECT nome, dt_agendamento, horario, presenca
 FROM Agendamento A, Usuario u, Pessoa_fisica pf
 where a.cod_login = u.cod_login
 and pf.cod_pessoa_fisica = u.cod_pessoa_fisica
 group by cod_agendamento;";
 
 $data = array();

 $resultadoVerifica = mysql_query($seleciona);
$registrosVerifica = mysql_num_rows($resultadoVerifica);

while($row=mysql_fetch_array($resultadoVerifica)){
	
	$data_db = array(
		'dt_agendamento' => $row['dt_agendamento'],
		'horario' => $row['horario'],
		'nome' => $row['nome'],
		'title' => 'Agendados',
	);
	
	$var = array_push($data, $data_db);

}

echo json_encode($data);
?>

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.