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】
【supplier】
【telbook】
【order】
さて本題。
「テーブル.カラム名」と記載する項目が多いと
コーディングするの面倒ですよね?
それをテーブル名を指定する部分で「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)結果
上記ソースを改変して「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
ちょい説明詳しくします。
まずGROUP BY と HAVING抜いた状態だとこうなります。
order_numとstockの値が違ってて「んん?」ってなると思います。
「GROUP BY name」と付けるとstock=70の内訳が判明します
次に「HAVING」。stockが30のものは「津軽ファーム」のみなので、
「HAVING stock<30」とすると、1行だけが表示されます。
課題の割り振りはざっくり決めたけど、テーブルの数、必要要素とか決めてない\(^o^)/