タブレット用スタイラスペンと書籍

iPadで図や絵を書きたいと思い、Amazonで購入。2000円弱だった。
あと、ビックカメラの商品券が残ってたので、書籍を2冊購入した。商品券でお釣りも出た。

公開API活用ガイド (I・O BOOKS)
ZAPA
工学社
売り上げランキング: 35205

書籍メモ

"よくわかるPHPの教科書"のサンプルを打ちながらとったメモ。p223まで。
PHPとDBの連携について学習(Part5 practice1)。PHPでDBへのデータ追加・読み込み・更新・削除(CRUD)をひと通りやった。

  • DB接続でやる最初の処理セット
  • レコードセットを取得する:$recordSet = mysql_query('SELECT * FROM my_items');
  • レコードセットから1レコード取り出す:$data = mysql_fetch_assoc($recordSet);
  • フォームのデータを使用するときは直接使用せず、mysql_real_escape_stringを使う:mysql_real_escape_string($_POST['maker_id'])
  • 共通処理はくくりだして読み込む:require('dbconnect.php');

初秋

買ったけど読んでなかった本。これから読む。

初秋 (ハヤカワ・ミステリ文庫―スペンサー・シリーズ)
ロバート・B. パーカー
早川書房
売り上げランキング: 129985

書籍メモ

"よくわかるPHPの教科書"のサンプルを打ちながらとったメモ。p186まで。
今日はデータベース。ブラウザからphpMyAdminを操作した。
ORDER BYとLEFT JOIN(外部結合)について、そういうものかという認識で、使いこなす自信がない。

  • オートインクリメントはプライマリキーに設定したフィールドにのみ利用可能
  • レコードを削除し、再度挿入した際、オートインクリメントでは新しい値が設定される(値の使い回しはされない)
  • 不等号は<>:SELECT * FROM `my_items` WHERE id<>1;
  • 文章の部分検索はLIKE:SELECT * FROM `my_items` WHERE keyword LIKE '%甘い%';
  • データの並び替えはORDER BY:SELECT * FROM `my_items` ORDER BY id ASC;
    • フィールドは相対情報よりも絶対情報でつくるようにする
    • "ランキング"より、"売上数"や"点数"といったフィールドをつくる
    • 参照時にORDER BYで並び替える→相対情報がわかる
  • 時間を表す型にDATETIME型とTIMESTAMP型がある
  • XX毎に集計するのはGROUP BY:SELECT item_id, SUM(count) FROM carts GROUP BY item_id;
  • 内部結合は両方のテーブルにデータが存在しないと結合されずデータが表示されない。
  • 外部結合は一方のテーブルにデータが存在すればデータが表示される。SELECT i.item_name, SUM(c.count) FROM my_items i LEFT JOIN carts c ON i.id=c.item_id GROUP BY i.id;
  • 重複をなくすにはDISTINCT:SELECT DISTINCT item_id FROM carts;
  • 間を示すにはBETWEEN
  • 複数の値を示すにはIN
  • 件数を制限するにはLIMIT
  • フィールドに別名を付けるにはAS
  • バックアップ:データベーススペース選択→エクスポートタブ選択→Save as fileにチェックしてGo→.sqlファイルがDownloadフォルダに出来る

書籍メモ

"よくわかるPHPの教科書"のサンプルを打ちながら&調べながらとったメモ。p129まで。

  • ファイルアップロード
    • フォームの属性にenctypeを付ける。enctype="multipart/form-data"
    • methodは必ずpost
    • データは$_FILES['フォームのname属性値']に格納される
    • ファイル名:$_FILES['フォームのname属性値']['name']
    • アップロードしたファイル:$_FILES['フォームのname属性値']['tmp_name']
    • 上記テンポラリファイルを移動する move_uploaded_file($_FILES['フォームのname属性値']['tmp_name'], $filepath);
  • 部分文字列を取得する $ext = substr($file['name'], -3);
  • ファイルに書き込む $success = file_put_contents('./news_data/news.txt', '2012-01-08 Hello, world!');
    • ディレクトリが無かったらwarning出る
    • ファイルが無かったら新規作成する
    • 通常はドキュメントルートよりも外に保存する。ブラウザでアクセス可能なので。
  • ファイルから読み込む $news = file_get_contents('./news_data/news.txt');

書籍メモ

"よくわかるPHPの教科書"のサンプルを打ちながら&調べながらとったメモ。p108まで。

  • セッションでWebブラウザを閉じるまでデータを保持する
    • セッションを使うページでsession_start()が必要
    • $_SESSIONに保存する
    • リファレンス http://www.php.net/manual/ja/book.session.php
    • セッション情報を消すときはsession_unset
    • Webサーバにセッション情報が保存される
      • phpinfoに保存場所が記載している
      • インストールしたMAMPだと、/Applications/MAMP/tmp/php
    • クライアントにはセッションIDを発行し、Cookieに保存される
    • セキュリティリスクにセッションハイジャックというのがあるみたい。

セッションIDの照合とかのチェックは誰がどうやってやってる?
まだよくわかってない。自分がサービスを実装するときに勉強する。