PHP FullCalendar MSSQL 연동

PHP FullCalendar MSSQL 연동

QA

PHP FullCalendar MSSQL 연동

본문

 

안녕하세요.

제가 PHP 언어로 일정예약 하는 웹 페이지를 만들어보고 있습니다.

구글, 네이버를 다 뒤져봐도 FullCalendar 라이브러리를 이용해서 MySql 과는 연동을 시키는데 MSSQL 과는 연동시키는 코드가 없더라구요..

 

우선, 구글링을 통해 아래 링크 속 코드를 이용해서 코딩 중입니다.

https://phppot.com/php/php-calendar-event-management-using-fullcalendar-javascript-library/

 

일단 MySql로 연동시킨 소스코드를 제가 나름 MsSql로 바꿔봤는데 잘 동작하지 않습니다.

 

Mssql에서 사용하고자 하는 테이블(tblCalendar) 구조입니다.

1935365004_1646706542.4003.jpg

 

 

이제 코드를 첨부하겠습니다.

 

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

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

이 질문에 댓글 쓰기 :

답변 1

답변을 작성하시기 전에 로그인 해주세요.
전체 55
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT