ゼロから始めるPHP講座Vol28 DB操作の使用例


ゼロから始めるPHP講座Vol28 DB操作の使用例
目次
  1. ゼロから始めるPHP講座 DB操作の使用例
  2. DB操作の使用例(PHP + HTML)

ゼロから始めるPHP講座 DB操作の使用例

DB操作の使用例(PHP + HTML)

既に説明している通りDBは様々なところで利用されています。mysql_select.phpではデータを取得して表示するだけでしたが、もう少し実用的なページを作ってみましょう。 ファイル名:mysql_sample.php

<?php

$goods_data = array();

$order = 'ASC';

if (isset($_GET['order']) === TRUE) {
     $order = $_GET['order'];
}

$host     = 'localhost'; // データベースのホスト名又はIPアドレス
$username = 'username';  // MySQLのユーザ名
$passwd   = 'passwd';    // MySQLのパスワード
$dbname   = 'dbname';    // データベース名

$link = mysqli_connect($host, $username, $passwd, $dbname);

// 接続成功した場合
if ($link) {

    // 文字化け防止
    mysqli_set_charset($link, 'utf8');

    $query = 'SELECT goods_name, price FROM goods_table ORDER BY price ' . $order;

    // クエリを実行します
    $result = mysqli_query($link, $query);

    // 1行ずつ結果を配列で取得します
    while ($row = mysqli_fetch_array($result)) {
        $goods_data[] = $row;
    }

    // 結果セットを開放します
    mysqli_free_result($result);

    // 接続を閉じます
    mysqli_close($link);

// 接続失敗した場合
} else {
    print 'DB接続失敗';
}

?>
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>サンプル</title>
    <style type="text/css">
        table, td, th {
            border: solid black 1px;
        }
        table {
            width: 200px;
        }
    </style>
</head>
<body>
    <h1>商品一覧</h1>
    <form>
        <input type="radio" name="order" value="ASC" <?php if ($order === 'ASC') {print 'checked';} ?>>昇順
        <input type="radio" name="order" value="DESC" <?php if ($order === 'DESC') {print 'checked';} ?>>降順
        <input type="submit" value="表示">
    </form>
    <table>
        <tr>
            <th>商品名</th>
            <th>値段</th>
        </tr>
<?php
foreach ($goods_data as $value) {
?>
        <tr>
            <td><?php print htmlspecialchars($value['goods_name'], ENT_QUOTES, 'UTF-8'); ?></td>
            <td><?php print htmlspecialchars($value['price'], ENT_QUOTES, 'UTF-8'); ?></td>
        </tr>
<?php
}
?>
    </table>

</body>
</html>

PHP-DB2-1-639

商品の一覧を表示するページで、表示順を価格で昇順・降順と選べます。

ECサイトなどでは必ずある機能で、商品情報を格納しているテーブルからデータをSELECTし表示しています。

phpMyAdminを使っていたときから、SELECTしたデータの表示順番は不規則だったと思いますが、カラムを指定し昇順又は降順で並び替えをすることが可能です。

PHP-DB2-2-639

このようにORDER BY句を指定することで、昇順(ASC)又は降順(DESC)で、レコードの並び替えができます。

mysql_sample.phpでは、商品の価格順に並び替えをしたデータを取得しています。

goods_tableのgoods_name、priceをprice降順で取得 SELECT goods_name, price FROM goods_table ORDER BY price DESC

なお昇順(ASC)で並び替えを行う場合は、下記のように省略も可能です。

goods_tableのgoods_name、priceをprice昇順で取得(ASC省略) SELECT goods_name, price FROM goods_table ORDER BY price

NEXT LESSON ☛ PHPによるDB操作〜応用〜

PREV LESSON ☛ PHPによるDB操作〜基礎〜


CodeCampus編集部
この記事を書いた人
CodeCampus編集部
まずは7日間お試し!人気プログラミング講座を無料公開中
オンライン・プログラミングレッスンNo.1のCodeCamp