아래에 작성된 코드는 article.php - HTML tag 상단에 작성해둔 PHP code이다.
[ article.php ]
<?phprequire_once("db_connect.php");require_once("jwt.php"); $idx = $_GET['idx']; $sql ="SELECT hit FROM board WHERE id='$idx'"; $result =mysqli_query($conn, $sql);if(!$result) {echo"<script>alert('DB Error');</script>";exit; }if(mysqli_num_rows($result)!=1) {echo"<script>alert('REQUEST Error');</script>";exit; } $row =mysqli_fetch_array($result);//update a hit count $hit = (int)$row['hit'] +1; $sql_hit_update ="UPDATE board SET hit='$hit' WHERE id='$idx'"; $hit_update_res =mysqli_query($conn, $sql_hit_update);if(!$hit_update_res) { // $res != 1이면 즉, error면 echo"<script>alert('DB Error');</script>";exit; }//after update $sql ="SELECT * FROM board WHERE id = '$idx'"; $res =mysqli_query($conn, $sql); $data =mysqli_fetch_array($res); $post_author = $data['author']; $cur_usr =getToken($_COOKIE['JWT'])['usr'];// var_dump($data);?>
HTML code 전에 실행될 내용은 (1)조회수 증가와 (5)에서 사용할 변수 정의 정도가 되시겠다!
$idx = $_GET['idx'];$sql ="SELECT hit FROM board WHERE id='$idx'";$result =mysqli_query($conn, $sql);if(!$result) {echo"<script>alert('DB Error');</script>";exit;}if(mysqli_num_rows($result)!=1) { echo"<script>alert('REQUEST Error');</script>";exit;}$row =mysqli_fetch_array($result);
우선, 사용자가 선택한 게시물 ID로 hit column을 조회하는 SQL을 실행한다.
문제 없이 Query가 실행되었다면
$hit = (int)$row['hit'] +1;$sql_hit_update ="UPDATE board SET hit='$hit' WHERE id='$idx'";$hit_update_res =mysqli_query($conn, $sql_hit_update);if(!$hit_update_res) { // $res != 1이면 즉, error면 echo"<script>alert('DB Error');</script>";exit;}
hit column 값을 가져와 1을 더한 후, 변경된 조회수를 Table에 업데이트 시킨다.
조회수를 업데이트 시킨 후, 본격적으로 상세 페이지에 띄울 게시물 정보를
$sql ="SELECT * FROM board WHERE id = '$idx'";$res =mysqli_query($conn, $sql);$data =mysqli_fetch_array($res);$post_author = $data['author'];$cur_usr =getToken($_COOKIE['JWT'])['usr'];
Table에서 꺼내오는 흐름이다.
마지막 줄에 선언해 둔 변수 post_author & cur_usr는 (5)에서 사용할 변수로
$post_author : 사용자가 선택한 게시물의 작성자
$cur_usr : 현재 로그인해서 활동하고 있는 사용자
두 값을 비교해서 일치하는 경우에만, EDIT 버튼을 활성화 시킬 생각이다.
자! 다음으로 넘어가서 위에서 변수 data에 넣어둔 값을 가져와 화면에 출력 시켜 보자.