테스트 사이트 - 개발 중인 베타 버전입니다

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에 존재하는 일정들이 표시된 후에 추가, 수정, 삭제 하는걸 구현하고자 합니다.

도와주신다면 정말 감사드립니다.

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

복스리
3년 전

이정도면 제작의뢰 쪽으로 가시는게 더 효율적이라 생각됩니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인