🗂

PHP学習①

2023/07/18に公開

アプリケーション→XAMMP→htdocsの中で作業をする!
htdocs内にフォルダを作ってあげたらVScodeにコピペ
新しいファイルで〜〜.phpを作成

<?php ;?>
PHP言語記述する際にはこれを書く必要がある!
確認する際には「localhost/自分のフォルダ名」で検索!

!の後にTabキーを押せばhtmlの雛形完成!
「link:css」をhead内に打てばでcssの同期ができる(~~.cssのファイルを作成しておく)

<?php ;?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PHP掲示板</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    
</body>
</html>

ここまでのコード
htmlの学習はまたするので一旦雛形までを載せておく

<?php
?>

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PHP掲示板</title>
    <link rel="stylesheet" href="style.css">
</head>

<body>
    <h1 class="title">PHPで掲示板アプリ</h1>
    <hr>
    <div class="boardWrapper">
        <section>
            <article>
                <div class="nameArea">
                    <span>名前:</span>
                    <p class="username">doubleCode</p>
                    <time>:2023/7/10</time>
                </div>
                <p class="comment">手書きコメントです。</p>
            </article>
        </section>
        <form class="formWrapper">
            <div>
                <input type="submit" value="書き込む">
                <label for="">名前:</label>
                <input type="text" name="username">
            </div>
            <div>
                <textarea class="commentTextArea"></textarea>
            </div>
        </form>
    </div>
</body>

</html>

ここから本題のPHP!
PHPは変数の前に$をつけることが基本事項
そして自動的に定義されているものが「スーパーグローバル変数」

  • $_GET
  • $_POST
    httpのformで使われたものを取得することができる!
    formタグにはmethod ="POST"を追加する必要がある!
<form class="formWrapper" method="POST">

そして$_POSTで取得するものにはnameタグが必要!

  • $GLOBALS
  • $_SERVER
  • $_FILES
  • $_COOKIE
  • $_SESSION
  • $_REQUEST
  • $_ENV
  • $php_errormsg
    (使うことになったものを随時詳細記載していきます)

fromタグの中にmethod="POST"を加えて、nameタグでつけた名前を
echo $_POST["〜〜"]で出力

次に打ち込んだデータを保管するためにMySQLとの連携
localhostからPHPMyAdminへ新規作成でフォルダ名入力
カラム数は保存したいデータの数!
今回は掲示板なので投稿者の名前、文章、コメントのID、投稿日時の4つ!

phpMyAdminでタイプ分け

  • 数値「int」 → データ番号、数量など
  • 文字列「varchar」「長さ」に50などと入力 → 名前、タイトル、メルアドなど短い文字列
  • 長い文字列「text」を選択 → ブログ記事本文、メール本文など長い文字列
  • 日付「datetime」を選択 → 投稿日時、最終更新日時など

今回はIDなのでA_Iにもチェックを!
(Auto Incrementの略称!自動採番してくれる要検討)
全部打ったら保存!

ここからMySQLとPHPの連携ではPDOを使う!
クラスっていう紙の設計図からものを作るためにはインスタンス化することが必要!
インスタンス化はクラスの前にnewをつけてあげる!(newするとも言う)

PDOは公式ドキュメントを見ながらやったほうがいい!
公式ドキュメントをコピペしてあげたらdbnameを変えてあげる
その後にユーザーアカウントの名前とパスワード!

try catch文でエラーメッセージの取得

SQL文はデータベース(phpMyAdmin)に問い合わせするための言語
問い合わせ=クエリを投げる
MyAdmin→SQL
SELECT * FROM bbs-table;
selectは取り出す米印は全て

$sql="SELECT * FROM bbs-table;"で文章を用意
これを実行(出力)するために
$comment_array = array();

~~

comment_array = $pdo->query(sql);
arrayは配列、ただの関数だと一つしか入らない

foreachは配列に含まれる値をループで順番に取り出して処理したい場合に便利な繰り返し構文
<article>を囲ってあげる

次にフォームに打ち込んだものを表示させるための処理をする
公式ドキュメントを参考に
https://www.php.net/manual/ja/pdo.prepared-statements.php
貼り付けたら今回のデータに書き換える

Discussion