職業訓練校での半年間

2013/10月中旬から半年間の記録を書き留める予定。
http://android.wktk.so/ があるのを知って開始しました。

カテゴリ: PHP

ζ*'ヮ')ζ<かかないって言って何日さー

ちょっとK氏がJSONの記事書いてたのでやってしまったw

json.json
{
    "kanto" : [
        {
            "name": "sps渋谷店",
            "address": "東京都渋谷区"
        },
        {
            "name": "sps目黒店",
            "address": "東京都目黒区"
        },
        {
            "name": "sps練馬店",
            "address": "東京都練馬区"
        },
        {
            "name": "sps江東店",
            "address": "東京都江東区"
        },
        {
            "name": "sps千代田店",
            "address": "東京都千代田区"
        }
    ],

    "kansai" : [
        {
            "name": "sps綾部店",
            "address": "京都府綾部市"
        },
        {
            "name": "sps京丹後店",
            "address": "京都府京丹後市"
        },
        {
            "name": "sps城陽店",
            "address": "京都府城陽市"
        },
        {
            "name": "sps福知山店",
            "address": "京都府福知山市"
        },
        {
            "name": "sps舞鶴店",
            "address": "京都府舞鶴市"
        }
    ]
}

a.php
<?php
    $json = file_get_contents('jsondata.json');
    $shops = json_decode($json,true);
    echo $shops['kanto'][0]['name'];
?>


【結果】
sps渋谷店




ちなみにK氏のサイトを実行すると下記のようになります。
PHPやってる人は「連想配列じゃね?!」ってなると思います。

なーのーで
a.phpのような形で取得できたわけです。
18


 

84~88日まで課題でした。
84,85はK氏休みで1人で作業してる気分でしt(銃声

86日目にK氏がニコニコ自作ゲームフェス3の期限に合わせて
頑張ってたので疲労困憊でしたが出席しました。

でまぁ2人でほぼ1日かけてDB/画面の設計に時間を費やした結果、
87日目(課題4日目)はひたすら構築頑張ってました。

なんか余裕かましてK氏が担当する予定だったログイン画面の1部やりだした為、
自分の作業が遅延したので家でそのログイン画面作った時間分くらいで
下記のDBに登録してあるスケジュールを画面に表示する画面を完成させた。
WS000006

作る前はちょろいだろと思ってたのですが、
全日付を表示してる+全員休日もあるもんだから

教科書で出て多様なselect文の結果をそのままwhele($row=$db->fetch()){ }
ではNGなので苦労した。。。

下記のように何とか日付配列化して解決。
表示は「[日付][0]がnullなら表示しない」を条件にすればOK
WS000008


リンクに必要なパラメータも引き継げてるたので
もう明日で終わりますな!
(前半の苛立ちで飛ぶ鳥跡を濁したかったなんて言わないw)
WS000007


1限目:てきとうに復習(join関連)

2限目:テーブル名を変更するエイリアス

3限目以降:PHP/MySQLの課題
    →モデルの写真撮影会のスケジュール登録
      K氏、全て託しました・・・!
      説明用:http://beauty.hotpepper.jp/CSP/bt/reserve/afterCoupon

[機能概要]
◎ログイン(Pear::Auth使う?)
◎新規会員登録(メール登録or直登録)
 ※メールの場合、送られてくるメールにDBに登録したアカウントと紐付けるパラメータつける
◎カレンダー
http://beauty.hotpepper.jp/CSP/bt/reserve/?storeId=H000264750をベースにする?
 ※「このクーポンで予約する」ボタンで遷移した先。
 #先月・今月・来月の表示。
○モデルの指定&検索
○モデル側の登録ページ
△お気に入りモデルの登録
 (スケジュールが登録されるとお知らせメールが会員に送られる)
○セキュリティ対策(下記のあたり)
 クロスサイトスクリプティング
 パラメータの改ざん
 クロスサイトリクエストフォージェリ
 参考:http://www.itmedia.co.jp/enterprise/articles/0506/16/news030.html


2限目分
まず下記4テーブル作成します。
#右側のカラム要素表示は「SHOW CORUML FROM テーブル名」で表示したものです。

【products】
WS000138WS000139

【supplier】
WS000008WS000007

【telbook】
WS000002WS000001

【order】
WS000005WS000006


さて本題。

「テーブル.カラム名」と記載する項目が多いと
コーディングするの面倒ですよね?
それをテーブル名を指定する部分で「order o」と別名を記述することで
記述量を減らすことが出来ます。
select o.farm_name, s.address, s.rep_name,t.tel,
p.name, p.price, o.arrival_date, o.order_num,
sum(order_num) AS stock, p.etc
FROM orders o
LEFT JOIN products p using(name)
LEFT JOIN supplier s using(farm_name)
LEFT JOIN telbook t using(rep_name)
結果
WS000009


上記ソースを改変して「GROUP BY ~ HAVING~」を追加。
※表示項目が少し変わってるので注意
select 
o.farm_name, s.address, s.rep_name,
t.tel,p.name, p.price, o.arrival_date, o.order_num,
sum(order_num) AS stock, p.etc
FROM orders o
LEFT JOIN products p using(name)
LEFT JOIN supplier s using(farm_name)
LEFT JOIN telbook t using(rep_name)
GROUP BY name
HAVING stock<30 
WS000010


ちょい説明詳しくします。
まずGROUP BY と HAVING抜いた状態だとこうなります。
order_numとstockの値が違ってて「んん?」ってなると思います。
WS000011
「GROUP BY name」と付けるとstock=70の内訳が判明します
WS000012
次に「HAVING」。stockが30のものは「津軽ファーム」のみなので、
「HAVING stock<30」とすると、1行だけが表示されます。
WS000010

課題の割り振りはざっくり決めたけど、テーブルの数、必要要素とか決めてない\(^o^)/
1人で決めるだけなら早いんだけどね、、、




確定申告してくるっす。

昨日顔合わせして3/6(木)から即現場になりそうなので
どっか休むしかNEEE!ってなり、今日にしました。
・・・合わせてハロワに就職決定資料出してこよう。

うちの学校のひとでゲーム作ってるニコニコの企画、
日付が迫ってきたようです。
http://ch.nicovideo.jp/indies-game

実況プレイですが、コレ面白そうですな。
#適当に再生数で昇順にきたの見ただけ
http://www.nicovideo.jp/watch/sm22593023


79,80日目は体調不良(80日目は土曜だから休みだと思ってた)だったので飛んでます。
 dropboxの中身をみた感じは復習だった模様。

【79日目】
下記チャットシステムの答え合わせ(↓を参照)


【79日・80日】
 スケジュール表@Lesson36-38(表示・登録・削除・修正)

 
そして今日も課題
スケジュール表のレベルアップ版
指定カラム&昇順or降順をセレクトボックスから選択して
並び替えボタンを押したらその順序に並び替えた結果を再表示。
価格.comの製品一覧をイメージしてください。


 
構築のイメージはついたから今日は課題未着手。 

それよりも会社からの出向先より採用取れたので
SQLというかRDBMSの勉強してました。
基礎からのMySQL 改訂版 (プログラマの種シリーズ SE必修! )
西沢 夢路
ソフトバンククリエイティブ
2012-05-01



PL/SQLはOracleのみの機能なので、
別途お勉強予定です。。。
プロとしてのOracle PL/SQL入門 改訂版 (Oracle現場主義)
アシスト教育部
ソフトバンククリエイティブ
2010-03-18



Softbankシリーズ多いな、俺(~_~)
毎度おなじみのtechcoreさんでサクッと勉強するのもありだけどw

そして今どきServletを使う現場とはね、、、
http://servletmania.blog137.fc2.com/
ネットが使えない現場なので、ファイル入出力も頭に入れていこう。。

【自分用メモ】
入社日が決まったら学校に退校日を連絡する
(用紙の記入がいる)


 

このページのトップヘ