티스토리 뷰
*데이터의 흐름
php -> jquery -> mysql -> jquery -> php
이전글
1. blogLike() 함수 정의(jQuery)
jQuery로 blogLike()함수 정의하기
*함수개요
--> 1) php 코드의 변수를 받아옴
--> 2) 변수를 POST 형식으로 likeCheck.php 파일로 전달함
--> 3) likeCheck.php는 받아온 변수로 테이블을 조작하고 반영된 blogLike값을 반환함
--> 4) blogLike()함수는 반환된 blogLike값을 php코드에 반영함
--> 5) youlikeCheck 상태에 따라 3가지 동작(like+1, like-1, 로그인안내)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
var youlikeCheck = "<? echo $youlikeCheck;?>" //php변수(youlikeCheck) 불러옴
function blogLike(){
var blogID = "<? echo $blogID;?>"
if(youlikeCheck == false){ //좋아요를 안눌렀으면
$.ajax({
type : "POST", //post형식으로 데이터를 보낸다.
url : "likeCheck.php", //likeCheck.php로
data : {"blogID": blogID, "check": 1}, //blogID,check변수에 각 데이터를 넣고 전달
dataType : "json",
success : function(data){ //위 코드가 성공하면
$("#like").text("좋아요 : "+data.result); //ID가 like인 태그에 text삽입(위 코드의 결과값 반영)
youlikeCheck = true; //youlikeCheck를 true로 변경해서 좋아요 여부 반영
},
error : function(request, status, error){ //에러코드
console.log("request" + request);
console.log("status" + status);
console.log("error" + error);
}
});
} else if(youlikeCheck == true){ //좋아요를 눌렀으면
$.ajax({
type : "POST",
url : "likeCheck.php",
data : {"blogID": blogID, "check": 2},
dataType : "json",
success : function(data){
$("#like").text("좋아요 : "+data.result);
youlikeCheck = false;
},
error : function(request, status, error){
console.log("request" + request);
console.log("status" + status);
console.log("error" + error);
}
});
} else if(youlikeCheck == 'logout'){ //로그아웃 상태라면
alert("로그인을 해야 좋아요를 누를 수 있습니다.");
}
}
</script>
2. likeCheck.php 추가
<?php
include "../connect/connect.php"; //DB연결
include "../connect/session.php"; //세션연결
//변수 설정
$check = $_POST['check']; //1: 좋아요 안누름, 2: 좋아요 누름
$blogID = $_POST['blogID']; //blogID 저장
$memberID = $_SESSION['memberID']; //session에서 회원의 ID 저장
if($check == 1){ //좋아요 안눌렀으면
//해당 글의 blogLike 데이터 업데이트 (좋아요 +1)
$sql = "UPDATE myBlog SET blogLike = blogLike + 1 WHERE blogID = {$blogID}";
$connect -> query($sql);
//blogLike 테이블에 데이터 추가
$sql = "INSERT INTO blogLike(memberID, blogID) VALUES('$memberID', '$blogID')";
$connect -> query($sql);
} else { //좋아요를 눌렀으면
//해당 글의 blogLike 데이트 업데이트 (좋아요 -1)
$sql = "UPDATE myBlog SET blogLike = blogLike - 1 WHERE blogID = {$blogID}";
$connect -> query($sql);
//blogLike 테이블에 데이터 삭제
$sql = "DELETE FROM blogLike WHERE memberID = {$memberID} AND blogID = {$blogID}";
$connect -> query($sql);
}
//게시글의 bloglike 데이터 불러오기
$sql = "SELECT blogLike FROM myBlog WHERE blogID = {$blogID}";
$result = $connect -> query($sql);
$bloglike = $result -> fetch_array(MYSQLI_ASSOC);
$bloglike = $bloglike['blogLike'];
//결과값으로 bloglike데이터 전달
echo json_encode(array("result" => $bloglike));
?>
~이상 얕은 지식으로 게시글 좋아요 구현하기 였습니다~
'PHP' 카테고리의 다른 글
PHP - 게시글 수정하기 (2) 카테고리 불러오기 (0) | 2022.04.18 |
---|---|
PHP - 게시글 수정하기 (1) 구현 대상 정리 (0) | 2022.04.18 |
PHP - 좋아요 구현 (2) 테이블 셋팅, 데이터 불러오기 (0) | 2022.04.17 |
PHP - 좋아요 구현 (1) 버튼 생성 (0) | 2022.04.17 |
PHP - 조건문 (0) | 2022.04.16 |
댓글
© 2018 webstoryboy