はじめに
途中で飽きたので途絶しました
どこで飽きたか予想してみよう!
って右に目次書いてあるからダメじゃねーーーか
この記事は好きなことを話そう! Advent Calendar 2025の25日目に突然入れたやつです。
身内に作り方教えろと脅迫されたので書いてるやつでもあります。
兄の命だけは助けてくれ
定期ゲームの作り方概論みたいなのは過去になんかいっぱい書いたので、
今回は5年くらい定期作りマシーンになった結果の結論だけを話します。
言語は凝ったことしないのでHTML+CSS+JS+PHP+MYSQLと思われる
JSは今回登場しない。
注意
技術的理由を全然説明しません
詳しくは自分で調べてください
なんでそうなるかはAIに聞いたほうが早いのでそうしなさい
GPTとかgeminiとかclaudeなど好きにしなさい
キャラとイチャつくときはclaudeが表現豊かで嬉しい
事前準備/環境構築
いるもの
- がんばるという気持ち
- ウインドーズのパソコン
- XAMMP
- VisualStudioCord
- VisualStudioCordの拡張
- あとなんかChromeかEdge(FireFoxでもいいけどオススメはしない)
環境構築
XAMMP入れる
ザンプって読むらしいよ。
色々出来るんだけど、とりあえず「phpとデータベースを動かすためのマイクラの前提mod」だと思ってもらったらいい
この辺とか読んで従ったらできます
起動できたらApacheとMySQLの行のStartを押して

なんかこんな風にする
MySQLのAdominを押すとphpMyAdminが開かれるので、一旦それでオケー
出来ないときは「XAMPP phpmyadmin できない」とかで調べて
VSC入れる
Q. って何
A. メモ帳Lv.200000のこと
VISUAL STADIO CORDなのでVSCです
普通にテキストエディターとして有能だから俺は文字書くときも割と使ってる
この辺とか読んでいれたらオケー
で、VSCはマインクラフトだからmodがメッチャあるのでOptifine入れる
まずはこれ読みつつPHP Serverを拡張から探して入れる
するとPHP Serverの効能によって

画面右上にこういう青いマークが生じる
押すといま開いてるPHPファイルをその場で動かせる
メッチャ便利
あとはこれ読みつつ、
- PHP Intelephense
- Atom One Dark Theme
- zenkaku
- Auto Rename Tag
- indent-rainbow
- Prettier - Code formatter
あたり入れたらオケー
PHP Intelephense最強伝説(意訳: 関数とかをサジェストしてくれて便利です)
それはそれとして俺はGitHub Copilotがないともう耐えられない
ウィーンガショ
触ってみる
フォルダ作れ
パソコンで作業をする場合まあディレクトリ(要するに場所のこと)を隔離するべきだわな。
デスクトップを右クリックしてテキトーな名前を付けてください
なんでもいいけど慣例として半角小文字英数字で完結しておいたほうが無難
(日本語や記号は得てして文字コードのトラブルに振り回されがちだからです)

今回はphp_tutorialとするよ
よくtuterialって打ち間違える
そしたらVSCを起動して「ファイル」「フォルダーを開く」でさっき作ったフォルダを開く
準備完了です
ポリネシアン開発1日目 環境構築 完了
index.php作ってって書け
まず「ファイル」「新しいテキストファイル」でテキストファイルを開く
そしたら「名前をつけて保存」またはSHIFT+CTRL+Sでindex.phpって入力して保存
するとphpファイルで保存される
多くのサーバーのデフォルトではindex.html(またはphp)を自動的にトップページに認定する
ので、いま書いたページがトップページということになる
そこに今回はこう書く
<?php echo"うんち"?>
これは日本語でいうと「『うんち』という文字列を出力しろ」
つまりうんち出力コード
そして、右上の青いPHPのボタンか、右クリックして「PHP Server: Serve project」をする
するとうんちが出る

この時点でお前はうんちプログラマーが確定した
ざまあみやがれ
htmlの形状を作れ
<!DOCTYPE html>
<html lang="jp">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,user-scalable=1">
<link href="style.css" rel="stylesheet" type="text/css" />
<title>ページのタイトル</title>
</head>
<body>
<?php printf("うんち")?>
</body>
</html>
これをコピペする。以上。
一応説明するなら、
-
<!DOCTYPE html>でhtmlの文章であることを宣言 -
<head>タグ内で初期設定をいろいろする-
<meta>はなんか要するにコンフィグ 文字コード設定と表示設定 -
<link>は外部リソースの読み込み css以外もあるよ
-
-
<body>内に本編
ちなみにphpはキモくて、.phpファイルなのにhtmlが書けるし、
<?php (ここに内容) ?>ってするとhtml内にphpが書ける
その一点でphpを使う理由があるというのはwebをある程度やると分かるかも
style.css作ってbody{font-size:72px;}って書け
<link href="style.css" rel="stylesheet" type="text/css" />
っていうのが要するにstyle.css召喚の儀なんだけど、style.cssが存在しないね
つくるよ
「ファイル」「新しいテキストファイル」してから名前をつけて保存、
名前はstyle.cssにしようね
これが要するに外付けの装飾パーツになります
cssは書式がキモくて
セレクタ{
プロパティ: 値;
}
という方式を取るよ 絶対セミコロン忘れるなよ
今回は
body{
/* body つまりbodyタグのこと */
font-size: 72px; /* フォントサイズ */
font-weight: bold; /* フォントの太さ */
}
って入れてみよう
/* 内容 */はコメントアウトって言って読み込み無視エリアーです
phpMyAdominで新しいテーブル作ってみろ
SQLっていうのは端的にいうとエクセル
エクセルだからデータベース(.xlsx)があり、テーブル(シート)があり、カラム(列)があり、レコードがある
eno | キャラ名
1 | オリキャラ太郎
2 | 版権キャラ次郎
ってあったとき、enoとかキャラ名がカラム、1 | オリキャラ太郎 がレコード
プロフページ開いた時とかにeno1のデータを検索して、eno1のオリキャラ太郎でプロフはこうで~というデータを呼び出して羅列させているわけです
たぶん去年ぐらいにphpMyAdmin開いたの覚えてる?
閉じちゃった?そっか じゃあもっかい開いてね

するとこういうのがあると思う
そしたら左の新規作成を押そっか
見た目が違う場合はテーマが違うかもなので見てみてね
たぶんpmahommeが一番見やすいと思う
- idのA_Iにチェック入れる
- charanameとpasswordとcommentのタイプを「TEXT」にする
これだけ注意してね
本当はもっと正規化(ちゃんとする化)した方がいいんだけど、一旦これでいいです
いいな~って思ったら「保存する」で作成

表示タブ押してこうなったらグレイト
このSELECT * FROM charactersとかいうのはこのcharactersの表を出してね~て命令
SQL文だね キモいね
定期ゲーはhtmlが5割でcssが4割にJSが2割、phpが7割のSQLが10割です
28割だね
CREATE TABLE `php_test`.`characters`
(`id` INT NOT NULL AUTO_INCREMENT COMMENT '連番id enoだよ' , `charaname` TEXT NOT NULL COMMENT 'キャラの名前だよ' , `password` TEXT NOT NULL COMMENT 'パスワードだよ' , `comment` TEXT NOT NULL COMMENT 'キャラの一言コメントだよ' , PRIMARY KEY (`id`))
ENGINE = InnoDB;
ちなみにテーブル作成の儀もまたSQLで再現できます
なぜphpMyAdminを使っているのか?それは本来全部SQL文でやんないと行けないのを、GUI(UIで見えるようにする化)できるからです
でもこれをphpに引っ張ってこないといけないんだよね
それがむずいんだよな
なんなんだ バカ 最悪 アホ
phpでDBにデータを入れてみるよ
説明むずいから呪文置いて終わるね
<?php
session_start();
$dsn = 'mysql:dbname=php_test;host=localhost;charset=utf8mb4';
$user = 'root';
$password = '';
$dbh = new PDO($dsn,$user,$password);
$dbh->query('SET NAMES utf8mb4');
?>
これをindex.phpの一番上(headよりも上ね)にコヒペ。
全部わかんないと思うけど、これでいいです
そうしたら、追加でこれも入れる
<?php
$stmt = $dbh->prepare("INSERT characters (charaname, password, comment) VALUES ('テスト', 'password' , 'こんちは~');");
$stmt->execute();
echo 'データを追加しました。<br>';
?>
なんやねんこれ
これの
INSERT characters (charaname, password, comment) VALUES ('テスト', 'password' , 'こんちは~');
ここの部分がSQLで、まあ要するにphpでSQLを実行するための術式ね
「charaname『テスト』、password『password』、comment『こんちは~』というレコードを挿入するよ」という意味
idは?idは勝手に入るから気にしなくていいよ
idにはA_Iってチェック入れたと思うんだけど、あれは自動連番という意味なので
入力を終えたらページをリログしてみよう
phpはプログラムだから、勝手にやるぞ

おお

おお
逆に、データを取り出してみる
入った?入ったね 入ったけどこれじゃ観賞用だわな
ちなみに更新連打すると更新しただけ入るから気を付けてね
そしたら今度は取り出してみよう
<?php
$id = 1;
$stmt = $dbh->prepare("SELECT * FROM characters WHERE id = :eno");
$stmt -> bindParam(':eno', $eno);
$stmt -> execute();
$chara = $stmt->fetch(PDO::FETCH_ASSOC);
?>
これをbodyタグの中に入れる
何がいいたいかと言うと呼び出し術式です idが1の人を呼び出すよ。
呼びたしたものは$charaに入るんだけど、そのままだと
"chara": {
"charaname": "テスト",
"password": "password",
"comment": "こんちは~"
}
みたいな風に格納されてるせいで言語化が困難なんだよな。
これを配列って言うぞい。
まあなので、読めるようにする
<?php
echo "なまえ: " . $chara['charaname'] . "<br>";
echo "コメント: " . $chara['comment'] . "<br>";
?>
$charaの中のcharanameの項目見せて~って感じのことを要求しているね
これをうまいこと並べるとプロフになるし、

今はこうだ。
font-sizeは好きに調整していいからね
飽きた
飽きたあああああああああうおおおおおおおおおおおおおおおおおお
ここまで読んでくれた人、ありがとう!
ここまでやって良かったなと思ったひとは以下をAIに聞いてみてくれ。
- キャラクター登録
- 登録フォーム
<form>を作る - formから$_POSTを貰ってバリデーション(整える化)する
- パスワードの暗号化
- 整えたデータをINSERTする
- 登録フォーム
- ログインフォーム
- 暗号化したパスワードとの照合
- SESSIONの付与
- SESSIONの延長設定
- キャラリスト/プロフ/キャラ設定
- キャラテーブルを纏めて取得し羅列っち
- htmlspecialcharasがないとフタハナのプロフになるぞ
- icon登録とiconsテーブルを作ってcharactersテーブルとリンクしてみよう(JOIN句)
- チャット
- 発言のバリデーション
- 発言のINSERT
- 発言の読み込み
- 正規表現置換とかで装飾タグ実装および表示時の変換
- ページネーション
- $_GETでエリア切り替えとか
- cronというのは定時でphpを実行するやつです
- AP配ったりできるよ
- 日記みたいな遅延送信もできるよ
- タイムアウトが怖いから定期更新ゲームの定期更新部分に使うのはやや怖い
- 本番環境へ
- レンタルサーバー登録
- FTPって何/FileZilla便利だよ
- レンタルサーバー探すときはphpmyadminを備えてるやつがいいよ
いや多 無理だろ
まあ作りたくなったら頑張ってくれ
応援してるから



