PHP FullCalendar MSSQL 연동
본문
안녕하세요.
제가 PHP 언어로 일정예약 하는 웹 페이지를 만들어보고 있습니다.
구글, 네이버를 다 뒤져봐도 FullCalendar 라이브러리를 이용해서 MySql 과는 연동을 시키는데 MSSQL 과는 연동시키는 코드가 없더라구요..
우선, 구글링을 통해 아래 링크 속 코드를 이용해서 코딩 중입니다.
https://phppot.com/php/php-calendar-event-management-using-fullcalendar-javascript-library/
일단 MySql로 연동시킨 소스코드를 제가 나름 MsSql로 바꿔봤는데 잘 동작하지 않습니다.
Mssql에서 사용하고자 하는 테이블(tblCalendar) 구조입니다.
이제 코드를 첨부하겠습니다.
메인화면이라 할 수 있는 index.php입니다.
<!DOCTYPE html>
<html>
<link rel="shortcut icon" href="#">
<head>
<link rel="stylesheet" href="fullcalendar/fullcalendar.min.css" />
<script src="fullcalendar/lib/jquery.min.js"></script>
<script src="fullcalendar/lib/moment.min.js"></script>
<script src="fullcalendar/fullcalendar.min.js"></script>
<script src="fullcalendar/lib/locales-all.js"></script>
<script>
$(document).ready(function () {
var calendar = $('#calendar').fullCalendar({
editable: true,
events: "fetch-event.php",
displayEventTime: false,
eventRender: function (event, element, view) {
if (event.allDay === 'true') {
event.allDay = true;
} else {
event.allDay = false;
}
},
locale: "ko",
selectable: true,
selectHelper: true,
select: function (start, end, allDay) {
var title = prompt('내역 추가');
if (title) {
var start = $.fullCalendar.formatDate(start, "Y-MM-DD HH:mm:ss");
var end = $.fullCalendar.formatDate(end, "Y-MM-DD HH:mm:ss");
$.ajax({
url: 'add-event.php',
data: 'title=' + title + '&start=' + start + '&end=' + end,
type: "POST",
success: function (data) {
displayMessage("Added Successfully");
}
});
calendar.fullCalendar('renderEvent',
{
title: title,
start: start,
end: end,
allDay: allDay
},
true
);
}
calendar.fullCalendar('unselect');
},
editable: true,
eventDrop: function (event, delta) {
var start = $.fullCalendar.formatDate(event.start, "Y-MM-DD HH:mm:ss");
var end = $.fullCalendar.formatDate(event.end, "Y-MM-DD HH:mm:ss");
$.ajax({
url: 'edit-event.php',
data: 'title=' + event.title + '&start=' + start + '&end=' + end + '&id=' + event.id,
type: "POST",
success: function (response) {
displayMessage("Updated Successfully");
}
});
},
eventClick: function (event) {
var deleteMsg = confirm("Do you really want to delete?");
if (deleteMsg) {
$.ajax({
type: "POST",
url: "delete-event.php",
data: "&id=" + event.id,
success: function (response) {
if(parseInt(response) > 0) {
$('#calendar').fullCalendar('removeEvents', event.id);
displayMessage("Deleted Successfully");
}
}
});
}
}
});
});
function displayMessage(message) {
$(".response").html("<div class='success'>"+message+"</div>");
setInterval(function() { $(".success").fadeOut(); }, 1000);
}
</script>
<style>
body {
margin-top: 50px;
text-align: center;
font-size: 12px;
font-family: "Lucida Grande", Helvetica, Arial, Verdana, sans-serif;
}
#calendar {
width: 700px;
margin: 0 auto;
}
.response {
height: 60px;
}
.success {
background: #cdf3cd;
padding: 10px 60px;
border: #c3e6c3 1px solid;
display: inline-block;
}
</style>
</head>
<body>
<h2>일정 예약</h2>
<div class="response"></div>
<div id='calendar'></div>
</body>
</html>
DB를 연결시키는 db.php 입니다. (주석 처리한건 기존에 mysql과 연동되어있던 소스코드입니다.)
<?php
// $conn = mysqli_connect("localhost","root","test","phpsamples") ;
// if (!$conn)
// {
// echo "Failed to connect to MySQL: " . mysqli_connect_error();
// }
// DB 정보 등은 회사 정보들이라 불가피하게 가리겠습니다.
$smt_DB_IP = "(DB IP)";
$smt_DB_ID = "(DB_ID)";
$smt_DB_PWD = "(DB_PW)";
$smt_DB_NAME = "(DB_NAME)";
$smt_DB_ConnectInfo = array("UID"=>$smt_DB_ID, "PWD"=>$smt_DB_PWD, "Database"=>$smt_DB_NAME);
date_default_timezone_set('Asia/Seoul');
$conn = sqlsrv_connect($smt_DB_IP, $smt_DB_ConnectInfo);
if ($conn) {
echo "접속성공!";
}
else {
echo "접속실패! ".mssql_get_last_message();
}
?>
fetche-event.php 입니다.
<?php
// require_once "db.php";
// $json = array();
// $sqlQuery = "SELECT * FROM tbl_events ORDER BY id";
// $result = mysqli_query($conn, $sqlQuery);
// $eventArray = array();
// while ($row = mysqli_fetch_assoc($result)) {
// array_push($eventArray, $row);
// }
// mysqli_free_result($result);
// mysqli_close($conn);
// echo json_encode($eventArray);
require_once "db.php";
$json = array();
$sqlQeury = "SELECT * FROM tblCalendar ORDER BY MeetingDate, StartTime";
$result = sqlsrv_query($conn, $sqlQeury);
$eventArray = array();
while ($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) {
array_push($eventArray, $row);
}
echo json_encode($eventArray);
?>
우선 SELECT를 통해 DB와 연결이 성공해서 달력에 DB에 존재하는 일정들이 표시된 후에 추가, 수정, 삭제 하는걸 구현하고자 합니다.
도와주신다면 정말 감사드립니다.
!-->!-->!-->
답변을 작성하시기 전에 로그인 해주세요.