- 更新日: 2017年04月04日
- 公開日: 2015年12月08日
ゼロから始めるPHP講座Vol28 DB操作の使用例

ゼロから始める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>

商品の一覧を表示するページで、表示順を価格で昇順・降順と選べます。
ECサイトなどでは必ずある機能で、商品情報を格納しているテーブルからデータをSELECTし表示しています。
phpMyAdminを使っていたときから、SELECTしたデータの表示順番は不規則だったと思いますが、カラムを指定し昇順又は降順で並び替えをすることが可能です。

このように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編集部





![[PHP初心者必見]empty関数を使う目的から使い方まで徹底解説!](https://mash-jp.cdn.codecamp.jp/production/posts/34601/d93fb8307c6dcc0e2d4d0dc530dbde2e41f06d1a.34685.phone.jpeg?1556250135)








