Help us understand the problem. What is going on with this article?

PHPでSQLとhtmlを使う方法のサンプル

More than 5 years have passed since last update.

自分の備忘録も兼ねて、ひと通りSQLを使うまでの方法をメモしておこうと思います。
環境はMac10.9.2です。
SQLを使う環境を整えると自ずとPHPをローカルで扱う環境も整ったので合わせて共有しようかなと……(世の中に同じような情報は沢山有りますけど)

MAMPを導入しよう

http://www.mamp.info/en/

導入は簡単。
とりあえずFree版落として(PRO版も付いてくるけど気にしない)、インストールして起動する。
Mamp_start.png
後はサーバーを起動して、スタートページが開いたら導入完了。簡単親切設計。

phpMyAdminでちょっと遊ぼう

まずはMAMPでサーバーを起動。サーバーが起動し終わったら、自動で既定のブラウザでスタートページが開くはず。開かなかったら手動で起動しよう。

Mamp_startup.png

こんな画面が出るはず。
そしたらこの画像の丁度左下にphpMyAdminとあるはずですのでClick。

phpMyAdmin.png

早速遊びましょう。
まずは適当に、新規でデータベースを作ってみよう。
名前はfromWhereとかにしますか。照合順序はutf8_unicode_ciに設定して、作成。

db_create.png

次にデータテーブルを作成。なんだっていいですが、名前はwhereFromにしよう。(ネーミングセンス皆無)

table_create.png

今回はID,Name,From,Sex
のデータを登録することにしましょうか。

table_element.png

IDは連番でいいので自動で数字を割り振ってもらって、他のデータはNULLだと困るから、NULLは禁止しよう。
ちゃかちゃかっとデータを6つ位入れて……

table.png

テスト用のデータベースの完成。

localでPHPが動作するか見てみよう。

MAMPが動いている時にPHPをローカルで動かす方法は
Application/MAMP/htdocs
にPHPファイルを入れて
http://localhost:8888/
にアクセスするとローカルのPHPのファイルに接続できます。

さて、実際にphpを書いていきましょう。
習うより慣れろということで
Application/MAMP/htdocs/index.php
みたいにファイルを作って以下を書き込んで実行してみましょう。

<?php
  //ここにプログラムを書く
  define('DB_HOST','127.0.0.1');//ローカルホストのIP
  define('DB_USER','root');//MAMPのスタートページにいろいろ書いてる
  define('DB_PASSWORD','root');
  define('DB_PORT','8889');
  define('DB_NAME','fromWhere');//データベース名
  $dbhost = "mysql:host=".DB_HOST.";dbname=".DB_NAME.";port=".DB_PORT.";charset=utf8";

  try{
    $pdo = new PDO($dbhost,DB_USER,DB_PASSWORD);

    //whereFromテーブルからすべての情報を取り出すsql文
    $sql = "SELECT
              *
            FROM
              whereFrom
            ";

    //全ての情報を保存
    $statement = $pdo->query($sql);
    //データベースを配列情報に変換して、入れる
    $row = $statement->fetchAll(PDO::FETCH_ASSOC);

    //データベースの接続アウト
    $pdo=null;

  }catch(PDOException $e){
    echo 'Error:'.$e->getMessage();//エラーの内容を吐き出す
  }
?>

  <html>
    <body>
      <table>
        <tr>
          <th>ID</th>
          <th>Name</th>
          <th>From</th>
          <th>Sex</th>
        </tr>
          <?php
          if(isset($row)){
            foreach($row as $r){
              echo '<tr>';
              echo '<td>',$r['ID'],'</td>';
              echo '<td>',$r['Name'],'</td>';
              echo '<td>',$r['From'],'</td>';
              echo '<td>',$r['Sex'],'</td>';
              echo '</tr>';
            }
          }
          ?>
      </table>
    </body>
  </html>

http://localhost:8888/index.php
に、繋ぐと先ほど登録したデータを表示させることが出来ると思います。

こんな感じでデータベースのデータを引っ張る動的なWebサイトが作れるのですね。

mmusasabi
(*´д`*)パッション!!
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away