カレンダー付箋ボード

カレンダーと付箋ボードのWindowsアプリ完成!

詳細はこちら

【初心者】PHPで旅スタンプを表示するWebアプリを作成中。

旅スタンプが溜まってきたので整理したいな~、どうせなら勉強中のPHPでどうにかならないか?と考えて作成中です。

旅スタンプ

旅スタンプとは駅、空港、SA、観光スポットで押せる記念スタンプです。
(気になる方は過去ブログを参照)
日本特有なのか?海外旅行では旅スタンプはみたことがないですね。
あえて言うならパスポートに押す入国スタンプぐらい。

国内旅行に行ったときスタンプを押していたら、中国人らしき人がスタンプ帳を指さして
「それはどこに売っているんだ?(付近の土産屋を指さして)あそこか?」(身振り手振りから想像)
「ネットショップ・・・インターネット」
「あ~そうなのか(残念)・・・」(想像)

ってなことがありました。

溜まったスタンプを整理したいな~
どうせならPHPで作ってみよう。

まずは一覧を作る

まずは一覧を作ってみます。

こんな感じで。装飾はあとから考えます。
カレンダーを作ったときのソースを参考にしました。
(都道府県名にリンクを貼ってあります)

いくつか写真をのせてみました。

おぉぉ~いい感じ。
もう少し写真は大きくてもいいかな。

アプリ構造

一覧から都道府県名にリンクを貼って登録画面に移行。
スタンプ画像や日付、メモを入力して登録。
一都道府県に対して画像は3枚まで登録可能にする。
3枚のうち1枚を一覧で使う画像に指定できるようにする。

ソースコード

一覧のソースコードです。

//userのstamp情報を検索
  $sql = "SELECT * FROM mainstampdata WHERE userid=:userid";
  $stmt = $pdo->prepare($sql);
  $stmt->bindValue(':userid', $userid);
  $stmt -> execute();
  $userstamprow = $stmt -> fetchall(PDO::FETCH_ASSOC );
  

  foreach($userstamprow as $userstamp){
      $userstampname = basename($userstamp['stampimage']);
      $userstampnamecode = substr($userstampname, -8, 3);
      $stamp[strtoupper($userstampnamecode)] = $userstampname;
  }

データベースに接続してmainstampdataからuseridでデータを抽出

画像の保存場所からファイル名を取り出して変数userstampnameへ格納
ファイル名から都道府県コードを取り出して変数userstampnamecodeへ格納
コードを大文字にしてstamp[]へセットする

都道府県コードは自作で作成
北海道の場合はHKD、和歌山の場合はWKYなど。
このコードをファイル名に使います。

//todohukenmasterからデータを取り出す
  $sql = "SELECT * FROM todohukenmaster";
    $stmt = $pdo->prepare($sql);
    $stmt -> execute();

    //取得したデータを配列に
    while ($row = $stmt -> fetchall(PDO::FETCH_ASSOC )) {

    foreach ($row as $result) {
        if(isset($stamp[$result['todohukencode']])){
            $filename = '<img class="stamparea" src="/uploads/'.$stamp[$result['todohukencode']].'"/ height="300px">';
        }else{
            $filename = '';
        }
        $todohukendata[] = '<div class="col-md-2 col-sm-4 col-xs-6"><div class="todohuken">'.'
        <a href="http://localhost/stamp/stamplist.php?code='.$result['todohukencode'].'">'
        .$result['todohuken'] .'</a>'
         .'</div>'.$filename.'</div>';
        //$airportcodeall[] =  $result['airportcode'];
    }
    }

都道府県マスターからデータ取り出し

foreachしながらスタンプのある都道府県の画像をtodohukendata[]にセットします
(ブーストラップを使用)

<div class="row">
            <?php
                foreach ($todohukendata as $todohuken) {
                echo $todohuken;
                }
            ?>

</div>
 

HTMLでforeachでtodohukendataを取り出して表示します

まとめ

初心者なのでちょっとコードを書くとエラー、エラー。
それでも少しずつできてきました。
まだまだ先は長いけど、頑張るぞ~