2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PHP基礎_お問い合わせフォームDB連携

Last updated at Posted at 2023-03-25

前回の続き

データベース(phpmyadmin)連携

データベースと連携し、フォーム内容をデータベースに反映させる。

以下、前回の内容から追記したコード
※入力された情報が引き継がれ(index.php→check.php→thanks.php)、
データベースに反映させたい情報があるページにコードを記載する(以下thanks.phpに記載)

<?php 
    $nickname = $_POST['nickname'];
    $email = $_POST['email'];
    $content = $_POST['content'];

    // step1:データベース接続
        // phpmyadmin の phpkiso へ接続する
        // アカウント名
        // パスワード
        // phpからデータベースへアクセスするために使う、phpが用意した技
    $dsn = 'mysql:dbname=phpkiso;host=localhost';
    $user = 'root';
    $password='';
    $dbh = new PDO($dsn, $user, $password);
    $dbh->query('SET NAMES utf8');

    // step2:SQL文の実行
    $sql = 'INSERT INTO `survey`(`nickname`, `email`, `content`) VALUES ("'.$nickname.'", "'.$email.'", "'.$content.'")';
    $stmt = $dbh->prepare($sql);
    $stmt->execute();
?>

データ内容を表示する

データベースに反映した情報を見た目に表示する

データベースに取り込んだ情報を見た目に表示させ、管理しやすくする。
今回はview.phpを作成し、以下のコードを記入した。

<?php

// phpmyadminのデータを見た目に表示する

    $dsn = 'mysql:dbname=phpkiso;host=localhost';
    $user = 'root';
    $password='';
    $dbh = new PDO($dsn, $user, $password);
    $dbh->query('SET NAMES utf8');

        // 取得するとき select文
    // fetchAll() データベースのデータを全権取得し、配列に格納する技
    // PDO phpコード上のデータベースという意味
    // FETCH_ASSOC 連想配列のかたちで
    // var_dump 配列・変数の中身を検証する関数 = 検証する行為 = デバックする

    $sql = 'SELECT * FROM `survey`';
    $stmt = $dbh->prepare($sql);
    $stmt->execute();
    $records = $stmt->fetchAll(PDO::FETCH_ASSOC);
    // var_dump($records);


    foreach($records as $record){
        echo $record['id'] . '<br>';
        echo $record['nickname'] . '<br>';
        echo $record['email'] . '<br>';
        echo $record['content'] . '<br>';
        echo '<hr>';
    }

    // $test = ['id'=>1, 'mickname'=>'たろう'];
    // var_dump($test);

?>

一連の流れ

inde.php 問い合わせ内容を入力
スクリーンショット 2023-03-25 23.59.21.png

cehck.php 内容の確認画面
スクリーンショット 2023-03-25 23.59.31.png

thanks.php 問い合わせありがとう画面 
※ここでデータベースに問い合わせ内容が反映される
スクリーンショット 2023-03-25 23.59.45.png

phpmyadmin に問い合わせ内容が反映されている(phpmyadminはこの記事以降に投稿します)
スクリーンショット 2023-03-26 0.00.05.png

view.php データを見た目に表示させる
スクリーンショット 2023-03-26 0.00.32.png

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?