PHP FullCalendar MSSQL 연동
초보개발자오이
3년 전
조회 2,829
안녕하세요.
제가 PHP 언어로 일정예약 하는 웹 페이지를 만들어보고 있습니다.
구글, 네이버를 다 뒤져봐도 FullCalendar 라이브러리를 이용해서 MySql 과는 연동을 시키는데 MSSQL 과는 연동시키는 코드가 없더라구요..
우선, 구글링을 통해 아래 링크 속 코드를 이용해서 코딩 중입니다.
https://phppot.com/php/php-calendar-event-management-using-fullcalendar-javascript-library/
일단 MySql로 연동시킨 소스코드를 제가 나름 MsSql로 바꿔봤는데 잘 동작하지 않습니다.
Mssql에서 사용하고자 하는 테이블(tblCalendar) 구조입니다.

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