機能概要

ニュース(お知らせ)を管理する機能。一覧で表示されたタイトルを表示し、削除することもできる。

プログラミングコード

「newsManageList.php」お知らせ新規登録ページファイル

データベースからニュース情報を取得し一覧で表示します。

ニューステーブル(news_tbl)の構造はこちら

  • 4行目:「config.php」を読み込み、その中の変数情報を使用することができるようになります。
  • 6行目:「POST」の場合のみ、処理を行うための分岐処理です。
  • 9行目:「POST」を利用し「ページ内のhidden」からデータを受け取り、変数に代入しています。このデータは、削除対象の「seq_no」を取得します。
  • 11行目~28行目:削除対象の値「hid_seq_no」が存在する場合処理を行います。
  • 23~48行目:SQL文を利用し、「news_tbl」に値を登録しています。
  • 60行目:「Javascript」を使用し、「hid_seq_no」を空にします(初期化)。
  • 62行目:「Javascript」を使用し、関数「MJ_UPD」を定義します。(更新ボタン用)
  • 63行目:「Javascript」を使用し、更新ページ「newsUpdate.php」にGETで「seq_no」の値を渡します。
    ちなみに「seq_no」は、『news_tbl』のプライマリーキーです。
  • 65行目:「Javascript」を使用し、関数「MJ_DEL」を定義します。(削除ボタン用)
  • 66行目:「Javascript」を使用し、POSTで「hid_seq_no」の値を渡します。
    ここから「9行目」の処理に繋がります。
  • 76行目:「formタグ」のプロパティを設定します。
    • action:ファイル名やURL
    • method:POSTを入力(※その他、GETも利用可)
    • name:フォーム名
<?php

//データベース接続情報を格納
include("config.php");

if($_SERVER['REQUEST_METHOD'] === 'POST'){

    //POSTデータの取得
    $hid_seq_no = $_POST['hid_seq_no']; //削除される対象のseq_no

    if($hid_seq_no !== ""){

        //UPDATE文(更新)
        $sql = "update news_tbl set"
        ." delete_ku = '1'"
        ." where seq_no = :seq_no;";
        $dbh = new PDO($dsn, $user, $password);
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        try{
            $stmt = $dbh->prepare($sql);
            $stmt->bindValue(':seq_no', $hid_seq_no, PDO::PARAM_INT);
            $stmt->execute();
        }catch (PDOException $e){
            echo($e->getMessage());
            die();
        }
    }
}
try{
    $dbh = new PDO($dsn, $user, $password);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    //一覧取得
    $sql = "select"
            ." nt.seq_no"
            .",nt.title_kj"
            .",nt.delete_ku"
            .",nt.insert_at"
            .",nt.update_at"
            ." from news_tbl nt"
            ." where nt.delete_ku = '0'" //削除されていないデータのみ表示
            ." order by nt.seq_no desc;";
    $stmt = $dbh->prepare($sql);
    $stmt->execute();

    while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
        $data[] = $row;
    }
}catch (PDOException $e){
    echo($e->getMessage());
    die();
}
?>

<html>
<haed>
    <script type="text/javascript">

    document.getElementById('hid_seq_no').value = "";

    function MJ_UPD(argSEQ_NO){
        document.location.href="newsUpdate.php?seq_no="+argSEQ_NO;
    }
    function MJ_DEL(argSEQ_NO){
        document.getElementById('hid_seq_no').value = argSEQ_NO;
        document.fr01.submit();
    }

    </script>
<body>
    <div style="text-align: center;margin-top:20px;margin-bottom:20px;">ニュース管理</div>
    <div>
        <a href="newsAdd.php">新規登録</a>
    </div>
    <form name="fr01" action="" method="POST">
        <input type="hidden" id="hid_seq_no" name="hid_seq_no" value="">
        <table border="1" style="font-size:11px;" width="100%">
            <tr>
                <td>seq_no</td>
                <td>title_kj</td>
                <td>delete_ku</td>
                <td>insert_at</td>
                <td>update_at</td>
                <td>button</td>
            </tr>
            <?php foreach($data as $row): ?>
                <tr>
                    <td><?php echo $row['seq_no']; ?></td>
                    <td><?php echo $row['title_kj']; ?></td>
                    <td><?php echo $row['delete_ku']; ?></td>
                    <td><?php echo $row['insert_at']; ?></td>
                    <td><?php echo $row['update_at']; ?></td>
                    <td><<a href="javascript:" onclick="MJ_UPD(<?php echo $row['seq_no']; ?>);">更新</a>>|<<a href="javascript:" onclick="MJ_DEL(<?php echo $row['seq_no']; ?>);">削除</a>></td>
                </tr>
            <?php endforeach; ?>
        </table>
    </form>
</body>
</html>

演習問題

  1. 上記のコードを使用して、ファイル作成し、動作するようにしてみよう。
  2. データベースやテーブルを変更し、違う情報を利用して、動作するようにしてみよう。