phpでmysqlデータベースに
test_id, test_title, test_contents, test_date.test_imageのデータを保存しています。このデータのid毎に静的htmlに生成して書き出したいです。WordPressやMovable Typeの静的ファイルの書き出すとかに似ているイメージです。

画像の説明をここに入力

画像の説明をここに入力

例えば:上記添付した画像(CMS.png)の書き出すボタンを押すと添付した画像(database.png)から、/Applications/MAMP/htdocs/test/のディレクトリーの下に静的htmlファイにて生成して書き出したいです
/Applications/MAMP/htdocs/test/1.html
/Applications/MAMP/htdocs/test/2.html

1.htmlと2.htmlにはデータベースに保存されているtest_id, test_title, test_contents, test_date.test_imageのデータ内容がそれぞれのhtmlに全部表示されるようにしたいです

これはphpや何かをして書き出すことは可能でしょうか? ご教授お願い致します。


@D.T さん
sync.phpファイルは下記です。

<?php
   //require_once("db.php");
   //  取得するIDをURLパラメータから取得
    if (!isset($_GET['test_id'])) {
       echo '{$test_id} param not found. please set param [id] to url params.';
    return;
}
$test_id = $_GET['test_id'];

//  データベースに接続
//$db = new mysqli("localhost", "root", "root", "product");
$db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if ($db->connect_error) {
    echo 'database connect failed.';
    return;
}
if ($db->set_charset('utf8') === false) {
    echo 'database connect failed. can not using utf-8.';
    return;
}

//  データ取得とhtmlに変換
$html = "<!DOCTYPE html><html><head><meta charset=\"UTF-8\"><title>{$id} </title></head><body>";
//データベース名前はproductです, 今回の想定はいくつからのテーブルあって、その中のtestテーブルです
$result = $db->query("select * from test where test_id = {$test_id};");    //  本当はidのエスケープを考慮しないといけない でもselectなのでべつにこのままでも危険な事にはならない。
$rows = array();
for ($i=0; ($row=$result->fetch_assoc()) != null; $i++) {    //  一応一致した全行出力する
    if ($i > 0) {
    $html .= '<br />';
}
    $html .= 'test_id = ' . $row['test_id'] . ', ';
    $html .= 'test_title = ' . $row['test_title'] . ', ';
    $html .= 'test_contents = ' . $row['test_contents'] . ', ';
    $html .= 'test_date = ' . $row['test_date'] . ', ';
    $html .= 'test_image = ' . $row['test_image'];
}
$html .= "</body></html>";

//  ファイルに書き出し
if (file_put_contents("/Applications/MAMP/htdocs/test/{$test_id}.html", $html) === false) {
    echo 'write to file failed.';
} else {
    echo 'write to file succeed.';
}

@D.Tさんこちらが全ファイルです。
sync.phpとadmin.phpとdb.phpは同じディレクトリ下にあります。

sync.phpこちらは@D.Tさんのファイル

//  取得するIDを取得
if (!isset($_GET['test_id']) && !isset($_POST['test_id'])) {
    print '[test_id] param not found. please set param [test_id] to url params or post values.';
    return;
}
$id = isset($_GET['test_id'])? $_GET['test_id']:$_POST['test_id'];

//  データベースに接続
$db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
//$db = new mysqli("localhost", "root", "root", "product");//ここだけを自分の環境に合わせてみました。
if ($db->connect_error) {
    print 'database connect failed.';
    return;
}
if ($db->set_charset('utf8') === false) {
    print 'database connect failed. can not using utf-8.';
    return;
}

//  データ取得とhtmlに変換
$html = "<!DOCTYPE html><html><head><meta charset=\"UTF-8\" /><title>{$id}  </title></head><body>";
$result = $db->query("select * from test where test_id = {$id};");    //  本当 はidのエスケープを考慮しないといけない でもselectなのでべつにこのままでも危険な事にはならない。
for ($i=0; ($row=$result->fetch_assoc()) != null; $i++) {    //  一応一致した全行出力する
    if ($i > 0) {
        $html .= '<br />';
    }
    $html .= 'test_id = ' . $row['test_id'] . ', ';
    $html .= 'test_title = ' . $row['test_title'] . ', ';
    $html .= 'test_contents = ' . $row['test_contents'] . ', ';
    $html .= 'test_date = ' . $row['test_date'] . ', ';
    $html .= 'test_image = ' . $row['test_image'];
}
 $html .= "</body></html>";

 //  ファイルに書き出し
if (file_put_contents("/Applications/MAMP/htdocs/test/{$id}.html", $html) === false) {
    print 'write to file failed.';
 } else {
     print 'write to file succeed.';
?>

admin.php

    $query = "SELECT * FROM test ORDER BY test_id DESC";
    $select = mysqli_query($db, $query);
    while($row = mysqli_fetch_assoc($select)){
        $test_id =$row['test_id'];
        $test_title = $row['test_title'];
        $test_contents =$row['test_contents'];
        $test_date =$row['test_date'];
        $test_image =$row['test_image'];
        echo "<tr>";
?>
<?php 
        echo "<td>$test_id</td>";
        echo "<td>$test_title</td>";
        echo "<td>$test_contents</td>";
        echo "<td>$test_date</td>";
        echo "<td>$test_image</td>";
        echo "<td><a href=''>編集</td>";
        echo "<td><a rel=''>削除</td>";
        echo "<td><form action='sync.php' method='post'><div class='form-group'>
                <input type='hidden' name='test_id' value='".$test_id."'>
                <input type='submit' class='btn' name='submit' value='書き出す'>
               </div></form></td>";
        echo "</tr>";

}

db.php

<?php
    $db['db_host'] = "localhost";
    $db['db_user'] = "root";
    $db['db_pass'] = "root";
    $db['db_name'] = "product";

    foreach($db as $key => $value){
        define(strtoupper($key), $value);

   }
   $db = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
       mysqli_set_charset($db,"utf8");
  ?>