วันเสาร์ที่ 30 สิงหาคม พ.ศ. 2557

การสร้าง webboard ด้วย PHP MySQL ตอนที่ 6 การแก้ไข-ลบกระทู้ และ การแก้ไข-ลบความคิดเห็น


     ต่อจากบทความความตอนที่ 5 ที่ผมได้สอนทำการตั้งกระทู้และการตอบกระทู้หรือความคิดเห็น บทความนี้จะสอนในส่วนของการแก้ไขกระทู้และลบกระทู้ รวมถึงการแก้ไขและลบความคิดเห็นด้วย โดยผู้สามารถแก้ไขกระทู้ได้ต้องเป็นแอดมินและสมาชิก โดยที่สมาชิกสามารถแก้ไขกระทู้ของตัวเองได้เท่านั้น ไม่สามารถแก้ไขของคนอื่นได้ ส่วนแอดมินสามารถทำได้ทั้งหมดครับ แต่สำหรับการแก้ไขหรือลบความคิดเห็น สมาชิกสามารถแก้ไขและลบได้เฉพาะของตัวเอง ส่วนแอดมินสามารถแก้ไขหรือลบได้ทั้งหมดเช่นกัน



บางหน้าที่ได้สอนไปแล้ว ผมได้เพิ่มเติมโค๊ดบางส่วนเข้าไป ให้แก้ไขดังนี้

1.showboard.php

<?php
session_start();
require('bin/connectdb.php');
$show_board = '';
$chk_rows_board = 0;
$rs_board = '';
if (isset($_GET['delID']) && isset($_GET['cg_id'])) {//ต้องการลบกระทู้
    require('check_admin.php'); //ตรวจสอบว่าเป็นadminกดลบหรือป่าว ถ้าไม่ใช่ เราจะไม่ให้ลบกระทู้ได้
    $id = $_GET['delID'];
    $cg_id = $_GET['cg_id'];
    mysql_query('DELETE FROM tbl_board WHERE board_id=' . $id); //ลบกระทู้หลัก
    mysql_query('DELETE FROM tbl_board WHERE board_parent_id=' . $id); //ลบความคิดเห็นทั้งหมดในกระทู้
    header('Location:showboard.php?id=' . $cg_id);
    exit();
}
if (isset($_GET['id'])) {
    $rs_cg = mysql_query('SELECT cg_name,cg_id FROM tbl_category WHERE cg_id=' . $_GET['id']); //นั
    $show_board = mysql_fetch_assoc($rs_cg); //นับจำนวนแถวของหมวดกระทู้
    if (isset($show_board['cg_name'])) {//ถ้าชื่อหมวดไม่เป็นค่าว่างแสดงว่ามีหมวดนี้อยู่ในฐานข้อมูลจริงๆ
        // Join 2 เทเบิล tbl_board และ tbl_member  เพื่อดึงค่าของกระทู้,ข้อมูลของสมาชิกมาแสดง 
        //โดยเรียงตามข้อมูลของกระทู้ที่อัพเดทล่าสุด (board_time_update)
        $rs_board = mysql_query("SELECT b.board_id,b.board_topic,b.board_views,b.board_replies,m.mem_name,m.mem_id
 FROM tbl_board As b LEFT JOIN tbl_member As m ON b.mem_id=m.mem_id
  WHERE b.cg_id='" . $_GET['id'] . "' AND b.board_parent_id=0 
 ORDER BY b.board_time_update DESC");
        $chk_rows_board = mysql_num_rows($rs_board); //นับจำนวนแถวของกระทู้
    } else {//ถ้าเป็นค่าว่าง แสดงว่าไม่มีหมวดนี้อยู่ในฐานข้อมูล ให้Redirectไปหน้า index.php
        header('Location:index.php');
    }
} else {//ไม่พบพารามิเตอร์ $_GET['id'] .ให้กลับไปหน้าแรก
    header('Location:index.php');
    exit();
}
?>
<html>
    <head>
        <?php require('head.php'); ?>
        <title><?php echo $show_board['cg_name']; ?></title>
    </head>
    <body>
        <?php require('menu.php'); ?>
        <div class="container">
            <?php require('header.php'); ?>
            <div class="row ws-content">
                <ol class="breadcrumb">
                    <li><a href="index.php">Home</a></li>
                    <li class="active"><?php echo $show_board['cg_name']; ?></li>
                </ol>
                <h1><?php echo $show_board['cg_name']; ?></h1>
                <table class="table table-bordered table-hover">
                    <thead>
                        <?php if (!empty($_SESSION['mem_id'])) { ?>
                            <tr>
                                <th colspan="3"><span class="btn btn-default" ><a href="board_add.php?id=<?php echo $_GET['id'] ?>">ตั้งกระทู้</a></span></th>
                            </tr>
                        <?php } ?>
                        <tr>
                            <th>หัวข้อกระทู้</th><th class="hidden-xs">ความคิดเห็น</th><th class="hidden-xs">เข้าชม</th></tr>
                    </thead>
                    <tbody>
                        <?php
                        if ($chk_rows_board > 0) {//จำนวนแถวมากกว่า 0 แสดงว่ามีข้อมูล
                            while ($show_board = mysql_fetch_assoc($rs_board)) {
                                $board_id = $show_board['board_id'];
                                $mem_id = $show_board['mem_id'];
                                $mem_name = $show_board['mem_name'];
                                $board_topic = $show_board['board_topic'];
                                $board_views = $show_board['board_views'];
                                $board_replies = $show_board['board_replies'];
                                ?>
                                <tr>
                                    <td style="width:80%">
                                        <a href="viewboard.php?id=<?php echo $board_id; ?>"><?php echo $board_topic; ?></a>
                                        <br />
                                        โพสโดย : <?php echo $mem_name; ?>

                                        <?php
                                        if (isset($_SESSION['mem_id'])) {
                                            if ($_SESSION['mem_level'] == 1 || $mem_id == $_SESSION['mem_id']) {
                                                ?>
                                                (<a href="board_edit.php?id=<?php echo $board_id; ?>&cg_id=<?php echo $_GET['id'] ?>">แก้ไข</a>
                                                <?php if ($_SESSION['mem_level'] == 1) {//ลบได้เฉพาะ admin เท่านั้น?>
                                                    /
                                                    <a href="showboard.php?delID=<?php echo $board_id; ?>&cg_id=<?php echo $_GET['id'] ?>" onClick="return confirm('ยืนยันการลบข้อมูล')">ลบ</a>
                                                <?php } ?>)
                                                <?php }
                                        }
                                        ?>

                                    </td>
                                    <td style="width:10%" class="hidden-xs"><?php echo $board_replies; ?></td>
                                    <td style="width:10%" class="hidden-xs"><?php echo $board_views; ?></td>
                                </tr>
                                <?php
                            }
                        } else { //ไม่มีข้อมูลหมวดกระทู้
                            ?>
                            <tr>
                                <td colspan="3" align="center"><strong>ไม่พบกระทู้</strong></td>
                            </tr>
<?php } ?>
                    </tbody>
                </table>
            </div>
<?php require('footer.php'); ?>
        </div>      
    </body>
</html>

2.viewboard.php

<?php
session_start();
require('bin/connectdb.php'); //เรียกไฟล์เชื่อมต่อกับฐานข้อมูล
$show_topic_view = '';
$rs_board = '';
if (isset($_GET['delTopicID'])) {//ต้องการลบกระทู้
    require('check_admin.php'); //ตรวจสอบว่าเป็นadminกดลบหรือป่าว ถ้าไม่ใช่ เราจะไม่ให้ลบกระทู้ได้
    $id = $_GET['delTopicID'];
    mysql_query('DELETE FROM tbl_board WHERE board_id=' . $id); //ลบกระทู้หลัก
    mysql_query('DELETE FROM tbl_board WHERE board_parent_id=' . $id); //ลบความคิดเห็นทั้งหมดในกระทู้
    header('Location:viewboard.php?id=' . $id);
    exit();
}
if (isset($_GET['delAnsID']) && isset($_GET['topic_id'])) {//ต้องการลบกระทู้ความคิดเห็น
    $id = $_GET['delAnsID'];
    $topic_id = $_GET['topic_id'];
    mysql_query('DELETE FROM tbl_board WHERE board_id=' . $id); //ลบความคิดเห็น
    header('Location:viewboard.php?id=' . $topic_id);
    exit();
}

if (isset($_POST['btSaveRep'])) {//มีการคลิกที่ปุ่ม แสดงความคิดเห็น
    if (empty($_SESSION['mem_id'])) {//ถ้าไม่ใช่สมาชิก
        header('Location:index.php'); //ให้กลับไปหน้าหลัก
        exit(); //หยุดทำงานถึงบรรทัดตรงนี้
    }

    $id = $_GET['id'];
    $mem_id = $_SESSION['mem_id'];
    if (!empty($_POST['board_detail'])) {
        $boardDetail = $_POST['board_detail'];
        mysql_query("INSERT tbl_board(board_parent_id,mem_id,board_detail,board_time_add)
   VALUES($id,$mem_id,'$boardDetail',SYSDATE()) ");
        mysql_query('UPDATE tbl_board  As b LEFT JOIN tbl_category As c ON b.cg_id=c.cg_id
  SET b.board_replies=b.board_replies+1,c.cg_replie_totals=c.cg_replie_totals+1,b.board_time_update=SYSDATE()
  WHERE b.board_id=' . $id); //Update จำนวนความคิดเห็นในกระทู้นั้นๆ
    }
    header('Location:viewboard.php?id=' . $id);
    exit();
}
if (isset($_GET['id'])) {//พบว่ามีส่งเมธอดชื่อ id เข้ามา
    $rs_topic_view = mysql_query('SELECT b.board_id,b.board_topic,b.board_detail,b.board_time_add,c.cg_id,c.cg_name
  FROM tbl_board As b 
  LEFT JOIN tbl_category As c ON b.cg_id=c.cg_id 
  WHERE b.board_id=' . $_GET['id']);
    $show_topic_view = mysql_fetch_assoc($rs_topic_view);
    if (empty($show_topic_view['board_id'])) {//ฟิลด์ board_id เป็นค่าว่างแสดงว่าไม่มีกระทู้นี้อยู่ในฐานข้อมูล
        header('Location:index.php'); //ให้กลับไปหน้าหลัก
    } else {
        if (empty($_GET['notview'])) {//ค่า empty (ว่าง) แสดงว่าให้updateจำนวนผู้เข้าชมได้ ถ้าไม่ empty แสดงว่าห้ามupdateจำนวน
            mysql_query('UPDATE tbl_board SET board_views=board_views+1 WHERE board_id=' . $_GET['id']); //Update จำนวนผู้เข้าชมของกระทู้นั้น
        }
    }
} else {//ไม่พบค่า id ที่ส่งมา
    header('Location:index.php'); //กลับไปหน้าหลัก
}
?>
<html>
    <head>
        <?php require('head.php'); ?>
        <link rel="stylesheet" type="text/css" href="btvalidate/dist/css/bootstrapValidator.min.css"/>
        <script type="text/javascript" src="btvalidate/dist/js/bootstrapValidator.min.js"></script>
        <title><?php echo $show_topic_view['board_topic']; ?></title>
    </head>
    <body>
        <?php require('menu.php'); ?>
        <div class="container">
            <?php require('header.php'); ?>
            <div class="row ws-content">
                <ol class="breadcrumb">
                    <li><a href="index.php">Home</a></li>
                    <li><a href="showboard.php?id=<?php echo $show_topic_view['cg_id']; ?>"><?php echo $show_topic_view['cg_name']; ?></a></li>
                    <li class="active"><?php echo $show_topic_view['board_topic']; ?></li>
                </ol>
                <div>
                    <h1><?php echo $show_topic_view['board_topic']; ?></h1>
                    <?php
                    $rs_board = mysql_query('SELECT b.board_id,b.mem_id,b.board_topic,b.board_detail,b.board_time_add,c.cg_id,c.cg_name,m.mem_name,m.mem_image
  FROM tbl_board As b 
  LEFT JOIN tbl_category As c ON b.cg_id=c.cg_id 
  LEFT JOIN tbl_member As m ON b.mem_id=m.mem_id 
  WHERE b.board_id=' . $_GET['id'] . ' OR b.board_parent_id=' . $_GET['id'] . ' ORDER BY b.board_time_add ASC');
                    $rowNo = 0;
                    while ($show_board = mysql_fetch_assoc($rs_board)) {
                        $board_id = $show_board['board_id'];
                        $cg_id = $show_board['cg_id'];
                        ?>
                        <div class="panel panel-default">
                            <div class="panel-heading">
                                <div style="display:table-cell;padding-right:5px;" class="hidden-xs">
                                    <?php
                                    $userIcon = 'usericon.jpg';
                                    if (!empty($show_board['mem_image']))
                                        $userIcon = $show_board['mem_image'];
                                    ?>
                                    <img src="images/member/<?php echo $userIcon; ?>" width="50" height="50">
                                </div>
                                <div style="display:table-cell;vertical-align:top;width:100%;"> 
                                    <div style="text-align:right;color:#C8C8C8;border-bottom:1px dashed #C8C8C8;padding-bottom:4px;">
                                        <?php
                                        $linkEdit = "board_edit.php?id=$board_id&cg_id=$cg_id";
                                        $linkDel = 'viewboard.php?delTopicID=' . $board_id;
                                        if ($rowNo != 0) {
                                            $linkEdit = "board_ans_edit.php?id=$board_id&topic_id=" . $_GET['id'];
                                            $linkDel = 'viewboard.php?delAnsID=' . $board_id . '&topic_id=' . $_GET['id'];
                                            ?>
                                            <b> ความคิดเห็นที่  <?php echo $rowNo; ?></b>
                                        <?php } else { ?>
                                            กระทู้หลัก
                                        <?php } ?>
                                        By : <span style="color:#060"><?php echo $show_board['mem_name'] ?></span>
                                        Date : <?php echo $show_board['board_time_add']; ?>
                                        <span style="color:#999">    <?php
                                            if (isset($_SESSION['mem_id'])) {
                                                if ($_SESSION['mem_level'] == 1 || $show_board['mem_id'] == $_SESSION['mem_id']) {
                                                    ?>
                                                    (<a href="<?php echo $linkEdit; ?>">แก้ไข</a>
                                                    <?php if ($_SESSION['mem_level'] == 1 && $rowNo == 0) {//ลบได้เฉพาะ admin เท่านั้น?>
                                                        /<a href="<?php echo $linkDel; ?>" onClick="return confirm('ยืนยันการลบข้อมูล')">ลบ</a>
                                                    <?php } else if ($rowNo > 0) { //สามาชิกสามารถลบความคิดเห็นของตัวเองได้?>
                                                        /<a href="<?php echo $linkDel; ?>" onClick="return confirm('ยืนยันการลบข้อมูล')">ลบ</a>
                                                    <?php } ?>
                                                    )
                                                <?php }
                                            } ?></span>
                                    </div>
                                    <div style="padding-top:4px;">
    <?php echo $show_board['board_detail']; ?>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <?php $rowNo++;
                    } ?>

<?php if (!empty($_SESSION['mem_name'])) { ?>
                        <div class="col-md-7  col-sm-7 col-md-offset-2 col-sm-offset-2">
                            <h4>แสดงความคิดเห็น</h4>    
                            <form  method="post" enctype="multipart/form-data" id="boardReplieForm" name="boardReplieForm" action="">

                                <div class="form-group">
                                    <label for="Category Description">รายละเอียด</label>
                                    <textarea class="form-control" id="board_detail"  name="board_detail" placeholder="ใส่ความคิดเห็นตรงนี้" rows="10"></textarea>
                                </div>
                                <div class="form-group">
                                    แสดงความคิดเห็นโดย : <span style="color:#963"><?php echo $_SESSION['mem_name']; ?></span>
                                </div>
                                <div class="form-group">
                                    <input type="submit" class="btn btn-primary" name="btSaveRep" value="แสดงความคิดเห็น" >
                                </div>
                            </form>
                        </div>
            <?php } ?>
                </div>
            </div>
<?php require('footer.php'); ?>
        </div>
        <script>
                                            $(document).ready(function() {
                                                $('#boardReplieForm').bootstrapValidator({//ตรวจสอบการกรอกแสดงความคิดเห็น
                                                    feedbackIcons: {
                                                        valid: 'glyphicon glyphicon-ok',
                                                        invalid: 'glyphicon glyphicon-remove',
                                                        validating: 'glyphicon glyphicon-refresh'
                                                    },
                                                    fields: {
                                                        board_detail: {
                                                            validators: {
                                                                notEmpty: {
                                                                    message: 'กรุณากรอกข้อความด้วย'
                                                                }
                                                            }
                                                        }
                                                    }
                                                });
                                            });
        </script> 
    </body>
</html>

3.board_edit.php 

<?php
session_start();
if (empty($_SESSION['mem_id'])) {//ไม่พบค่าเซสชั่น mem_id แสดงว่าไม่ใช่สมาชิก จึงไม่สามารถตั้งกระทู้ได้
    header('Location:index.php');
}
require('bin/connectdb.php'); //เรียกไฟล์เชื่อมต่อกับฐานข้อมูล
if (!empty($_POST['btSaveEdit'])) {//มีการคลิกที่ปุ่มบันทึกแก้ไขกระทู้
    $msgError = '';
    if (!empty($_POST['board_topic']) || !empty($_POST['board_detail'])) {
        if (!empty($_GET['id'])) {
            $id = $_GET['id']; //รหัสกระทู้
            $board_topic = trim($_POST['board_topic']); //หัวข้อกระทู้
            $board_detail = nl2br($_POST['board_detail']); //รายละเอียดกระทู้
            mysql_query("UPDATE tbl_board SET board_topic='$board_topic',board_detail='$board_detail',board_time_update=SYSDATE() 
  WHERE board_id=$id") or die(mysql_error());
            header("Location:viewboard.php?id=$id");
            exit();
        }
    } else {
        $msgError.='กรุณากรอกหัวข้อกระทู้และรายละเอียดของกระทู้ด้วย<br />';
    }
    if (empty($msgError)) {
        //หากสมาชิกพิมพ์ข้อมูลถูกต้อง ให้Redirect หน้าไปที่ไฟล์ category.php
        header("Location:showboard.php?id=" . $_GET['cg_id']);
        exit();
    } else {
        //หากกรอกข้อมูลไม่ถูกต้อง ให้สร้างตัวแปร session มารับค่าเพื่อแจ้งให้ทราบถึงปัญหาที่เกิดขึ้น
        $_SESSION['message_error'] = $msgError;
    }
}
$show_board = '';
if (!empty($_GET['cg_id']) && !empty($_GET['id'])) {
    $rs_cg = mysql_query('SELECT cg_name,cg_id FROM tbl_category WHERE cg_id=' . $_GET['cg_id']);
    $show_cg = mysql_fetch_assoc($rs_cg); //นับจำนวนแถวของหมวดกระทู้
    if (empty($show_cg['cg_name'])) {
        header('Location:index.php');
        exit();
    }
    $rs_board = mysql_query('SELECT b.board_id,b.mem_id,b.board_topic,b.board_detail
  FROM tbl_board As b 
  LEFT JOIN tbl_member As m ON b.mem_id=m.mem_id 
  WHERE b.board_id=' . $_GET['id']);
    $show_board = mysql_fetch_assoc($rs_board);
    if ($_SESSION['mem_level'] != 1 && $show_board['mem_id'] != $_SESSION['mem_id']) {  //ไม่ใช่Admin และไม่ใช่เจ้าของกระทู้ แสดงว่าไม่มีสิทธิ์จัดการในส่วนนี้
        header('Location:index.php'); //เด้งกลับไปหน้าหลัก
        exit();
    }
} else {//ไม่พบพารามิเตอร์ $_GET['id'] .ให้กลับไปหน้าแรก
    header('Location:index.php');
    exit();
}
?>
<html>
    <head>
        <?php require('head.php'); ?>
        <link rel="stylesheet" type="text/css" href="btvalidate/dist/css/bootstrapValidator.min.css"/>
        <script type="text/javascript" src="btvalidate/dist/js/bootstrapValidator.min.js"></script>
        <title>แก้ไขกระทู้ห้อง <?php echo $show_cg['cg_name']; ?></title>
    </head>
    <body>
        <?php require('menu.php'); ?>
        <div class="container">
            <?php require('header.php'); ?>
            <div class="row ws-content">
                <ol class="breadcrumb">
                    <li><a href="index.php">Home</a></li>
                    <li><a href="showboard.php?id=<?php echo $show_cg['cg_id']; ?>"><?php echo $show_cg['cg_name']; ?></a></li>
                    <li class="active">แก้ไขกระทู้</li>
                </ol>
                <div class="col-md-7  col-sm-7 col-md-offset-2 col-sm-offset-2">
                    <h1>แก้ไขกระทู้</h1>
                    <?php
                    if (!empty($_SESSION['message_error'])) {
                        //แสดงปัญที่เกิดขึ้นจากการไม่กรอกชื่อหมวดกระทู้
                        ?>
                        <div class="alert alert-danger" role="alert">
                            <?php echo $_SESSION['message_error']; ?>
                        </div>
                        <?php
                        $_SESSION['message_error'] = '';
                    }
                    ?>
                    <form  method="post" enctype="multipart/form-data" id="boardForm" name="boardForm" action="">
                        <div class="form-group">
                            <label for="Category Name">หัวข้อกระทู้</label>
                            <input type="text" class="form-control" id="board_topic" name="board_topic" placeholder="หัวข้อกระทู้" value="<?php echo $show_board['board_topic']; ?>">
                        </div>
                        <div class="form-group">
                            <label for="Category Description">รายละเอียด</label>
                            <textarea class="form-control" id="board_detail"  name="board_detail" placeholder="รายละเอียดของกระทู้" rows="10"><?php echo str_replace('<br />', '', $show_board['board_detail']); ?></textarea>
                        </div>
                        <div class="form-group">
                            แก้ไขกระทู้โดย : <b><?php echo $_SESSION['mem_name']; ?></b>
                        </div>
                        <div class="form-group">
                            <input type="submit" class="btn btn-primary" name="btSaveEdit" value="บันทึกกระทู้" >
                        </div>
                    </form>
                </div>
            </div>
            <?php require('footer.php'); ?>
        </div>
        <script>
            $(document).ready(function() {
                $('#boardForm').bootstrapValidator({
                    feedbackIcons: {
                        valid: 'glyphicon glyphicon-ok',
                        invalid: 'glyphicon glyphicon-remove',
                        validating: 'glyphicon glyphicon-refresh'
                    },
                    fields: {
                        board_topic: {
                            validators: {
                                notEmpty: {
                                    message: 'กรุณากรอก หัวข้อกระทู้ ด้วย'
                                }
                            }
                        },
                        board_detail: {
                            validators: {
                                notEmpty: {
                                    message: 'กรุณากรอก รายละเอียดของกระทู้ ด้วย'
                                }
                            }
                        }
                    }
                });
            });
        </script>    
    </body>
</html>

4.board_ans_edit.php 

<?php
session_start();
if (empty($_SESSION['mem_id'])) {//ไม่พบค่าเซสชั่น mem_id แสดงว่าไม่ใช่สมาชิก จึงไม่สามารถตั้งกระทู้ได้
    header('Location:index.php');
}
require('bin/connectdb.php'); //เรียกไฟล์เชื่อมต่อกับฐานข้อมูล
if (!empty($_POST['btSaveEdit'])) {//มีการคลิกที่ปุ่มบันทึกแก้ไขกระทู้
    $msgError = '';
    if (!empty($_POST['board_detail'])) {
        if (!empty($_GET['id']) && !empty($_GET['topic_id'])) {
            $id = $_GET['id']; //รหัสกระทู้
            $topic_id = $_GET['topic_id'];
            $board_detail = nl2br($_POST['board_detail']); //รายละเอียดกระทู้
            mysql_query("UPDATE tbl_board SET board_detail='$board_detail',board_time_update=SYSDATE() 
  WHERE board_id=$id") or die(mysql_error());
            header("Location:viewboard.php?id=$topic_id");
            exit();
        }
    } else {
        $msgError.='กรุณากรอกหัวข้อกระทู้และรายละเอียดของกระทู้ด้วย<br />';
    }
    if (empty($msgError)) {
        //หากสมาชิกพิมพ์ข้อมูลถูกต้อง ให้Redirect หน้าไปที่ไฟล์ category.php
        header("Location:อ.php?id=" . $_GET['cg_id']);
        exit();
    } else {
        //หากกรอกข้อมูลไม่ถูกต้อง ให้สร้างตัวแปร session มารับค่าเพื่อแจ้งให้ทราบถึงปัญหาที่เกิดขึ้น
        $_SESSION['message_error'] = $msgError;
    }
}
$show_board = '';
if (isset($_GET['topic_id']) && isset($_GET['id'])) {
    $rs_cg = mysql_query('SELECT c.cg_id,c.cg_name,b.board_topic
  FROM tbl_board As b 
  LEFT JOIN tbl_category As c ON b.cg_id=c.cg_id 
  WHERE b.board_id=' . $_GET['topic_id']) or die(mysql_error());
    $show_cg = mysql_fetch_assoc($rs_cg);
    if (empty($show_cg['cg_name'])) {
        header('Location:index.php');
        exit();
    }
    $rs_board = mysql_query('SELECT b.board_id,b.mem_id,b.board_topic,b.board_detail
  FROM tbl_board As b 
  LEFT JOIN tbl_member As m ON b.mem_id=m.mem_id 
  WHERE b.board_id=' . $_GET['id']);
    $show_board = mysql_fetch_assoc($rs_board);
    if ($_SESSION['mem_level'] != 1 && $show_board['mem_id'] != $_SESSION['mem_id']) {  //ไม่ใช่Admin และไม่ใช่เจ้าของกระทู้ แสดงว่าไม่มีสิทธิ์จัดการในส่วนนี้
        header('Location:index.php'); //เด้งกลับไปหน้าหลัก
        exit();
    }
} else {//ไม่พบพารามิเตอร์ $_GET['id'] .ให้กลับไปหน้าแรก
    header('Location:index.php');
    exit();
}
?>
<html>
    <head>
        <?php require('head.php'); ?>
        <link rel="stylesheet" type="text/css" href="btvalidate/dist/css/bootstrapValidator.min.css"/>
        <script type="text/javascript" src="btvalidate/dist/js/bootstrapValidator.min.js"></script>
        <title>แก้ไขความคิดเห็นห้อง
            <?php echo $show_cg['cg_name']; ?>
        </title>
    </head>
    <body>
        <?php require('menu.php'); ?>
        <div class="container">
            <?php require('header.php'); ?>
            <div class="row ws-content">
                <ol class="breadcrumb">
                    <li><a href="index.php">Home</a></li>
                    <li><a href="showboard.php?id=<?php echo $show_cg['cg_id']; ?>"><?php echo $show_cg['cg_name']; ?></a></li>
                    <li class="active">แก้ไขความคิดเห็น</li>
                </ol>
                <div class="col-md-7  col-sm-7 col-md-offset-2 col-sm-offset-2">
                    <h1>แก้ไขความคิดเห็น</h1>
                    <?php
                    if (!empty($_SESSION['message_error'])) {
                        //แสดงปัญที่เกิดขึ้นจากการไม่กรอกชื่อหมวดกระทู้
                        ?>
                        <div class="alert alert-danger" role="alert">
                            <?php echo $_SESSION['message_error']; ?>
                        </div>
                        <?php
                        $_SESSION['message_error'] = '';
                    }
                    ?>
                    <form  method="post" enctype="multipart/form-data" id="boardForm" name="boardForm" action="">
                        <div class="form-group">
                            <label for="Category Name">หัวข้อกระทู้</label><br />
                            <span><?php echo $show_cg['board_topic'] ?></span>
                        </div>
                        <div class="form-group">
                            <label for="Category Description">ความคิดเห็น</label>
                            <textarea class="form-control" id="board_detail"  name="board_detail" placeholder="รายละเอียดของกระทู้" rows="10"><?php echo str_replace('<br />', '', $show_board['board_detail']); ?></textarea>
                        </div>
                        <div class="form-group">
                            แก้ไขความคิดเห็นโดย : <b><?php echo $_SESSION['mem_name']; ?></b>
                        </div>
                        <div class="form-group">
                            <input type="submit" class="btn btn-primary" name="btSaveEdit" value="บันทึกกระทู้" >
                        </div>
                    </form>
                </div>
            </div>
            <?php require('footer.php'); ?>
        </div>
        <script>
            $(document).ready(function() {
                $('#boardForm').bootstrapValidator({
                    feedbackIcons: {
                        valid: 'glyphicon glyphicon-ok',
                        invalid: 'glyphicon glyphicon-remove',
                        validating: 'glyphicon glyphicon-refresh'
                    },
                    fields: {
                        board_detail: {
                            validators: {
                                notEmpty: {
                                    message: 'กรุณากรอก ความคิดเห็น ด้วย'
                                }
                            }
                        }
                    }
                });
            });
        </script>    
    </body>
</html>

จะได้ผลลัพธุ์ดังนี้ (เมื่อเปิดดูบนสมาร์ทโฟน)

1.หน้า showboard.php


2.หน้า viewboard.php




3.หน้า board_edit.php


4.หน้า board_ans_edit.php


4 ความคิดเห็น :

  1. พอดีทำตามอาจาย์บอกทุกขั้นตอนแล้วครับ แต่เมื่อคลิกเข้าไปอ่านกระทู้ของคนอื่นรวมทั้งคลิกเพื่อทำการแก้ไขกระทู้ทั้งที่ ชื่อ log in เป็นของเราแต่พอคลิกกลับกลายเป็นเป็นชื่อของคนโพสที่เราจะเข้าไปตอบกระทู้เฉยเลย ไม่ทราบว่าต้องแก้ปัญหานี้อย่างไรครับ ช่วยตอบที ขอบคุณครับ

    ตอบลบ
    คำตอบ
    1. ใช่ค่ะ แก้ไขอย่างไรค่ะ

      ลบ
    2. ลืมทำ 4.board_ans_edit.php เหมือนผมหรือเปล่า

      ลบ
  2. ไม่ระบุชื่อ5 ตุลาคม 2566 เวลา 20:00

    board_edit.php มี error ใน input อะครับ

    Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\webboard\board_edit.php on line 86

    ตอบลบ