2012年2月29日水曜日

2012年02月28日 講義021日目

2012年02月28日
講義021日目
------------------------------1H------------------------------
★職業能力基礎
  ●自己分析
    ・志望動機や自己PRに記述する内容に説得力をもたせる
    ・自分の長所と短所を分析
    ・自分を他人であるかのように客観視することで自己分析しやすくなる
------------------------------2H------------------------------
★MySQL基礎2
  ●BETWEEN構文
    ・select カラム名 from テーブル名 where 比較したいカラム名 between A and B;
        値が指定した2つの間にあるかどうかを比較
------------------------------3H------------------------------
★MySQL基礎2
  ●IN構文
    ・select カラム名 from テーブル名 where 比較したいカラム名 in (値1, 値2);
        値が指定したリストの中にあるかどうかを比較します。
  ●LIKE構文
    ・select カラム名 from テーブル名 where 比較したいカラム名 like '値%';
        指定した値と部分一致で等しいか比較
        %は「任意の文字数の任意の文字」を表わす
------------------------------5H------------------------------
★MySQL基礎2
  ●テーブルを結合(join)して表示
    ・>msql select * from comment,member
            where comment.member_id = member.id;
      複数のテーブル、カラム名を指定することができる
    
    ・外部結合(outer join)→全レコード
      内部結合(inner join)→一致した分だけ
    ・二つ以上のテーブルも結合できる
    ・リレーショナルデータベース
        他のデータベースと連携ができるデータベース
    ・FOREIGN KEY
        他のテーブルのプライマリキーの値しか持つことのできないキー(comment.member_idのように))
        の設定を「外部キーという」
        「FOREIGN KEY」(primary key「PK」に対して「FK」と呼ぶ)
------------------------------6H------------------------------
★MySQL基礎2
  ●データのインポート
    ・>mysql exit
        一旦exitする
        コマンドプロンプトでインポートしたいファイルの場所まで行く
    ・データのインポート、エクスポート
        mysql -u ユーザ名 -p データベース名 < インポートするファイル
    ・使うデータベースを指定
        use study;
    ・そのデータベースの持ってるテーブルを表示
        show tables;
    ・指定したテーブルの構成を確認
        desc amazon_products;
   ●エクスポート
     ・mysqldump -u ユーザ名 -p データベース名 amazon_products > amazon_products.sql
-----------------------------memo------------------------------
mysqldumpでインポートする時に<と>を間違えたらエクスポートしてしまったっぽくて若干混乱した
エクスポート後のファイルの行数が短いけど改行されてないだけだったりしてエラー起きてると勘違いしたりした
データベースの操作を誤ると思いがけず上書きされたりするので気をつける

2012年2月28日火曜日

2012年02月27日 講義020日目

2012年02月27日
講義020日目
------------------------------1H------------------------------
★職業能力基礎
  ●チームミーティング
    ・アイスブレイク
        会話をしやすいように場の雰囲気を和ませる
    ・先週に自己分析した自分のあいまいなベクトルを材料にする
    ・進行役は議論が軌道に沿うようにする
        時間配分を考える
------------------------------2H------------------------------
★Mysql基礎
  ●演算子についての注意
    ・=の扱いがPHPと違い==ではないので注意
    ・sql文では AND OR プログラムでは &&,||
  ●ルートとユーザ
    ・mysql> SELECT host,user FROM mysql.user;
        登録されてるユーザを閲覧するコマンド
    ・mysql> USE study;
        でデータベースstudyにログイン
    ・mysql> GRANT ALL ON *.* TO xxxxxx@"localhost"IDENTIFIED BY "xxxxxx";
        ユーザとパスワードの設定
    ・mysql> FLUSH PRIVILEGES;
        データベースの権限テーブルから権限を再読み込みする
    ・mysql> SELECT host,user FROM mysql.user;
        +-----------+---------+
        | host      | user    |
        +-----------+---------+
        | 127.0.0.1 | root    |
        | localhost |         |
        | localhost | xxxxx   |
        | localhost | pma     |
        | localhost | root    |
        | localhost | teacher |
        +-----------+---------+
       
    ・mysql> exit;
        ログアウト
    ・mis> mysql -u ユーザー名 -p
        Enter password: ******
        ログイン
    ・mysql> USE study;
        Database changed
        データベース選択
    ・mysql> SELECT * FROM member;
        +----+----------+------+
        | id | username | age  |
        +----+----------+------+
        |  1 | yamada   |   20 |
        | 10 | aaaaa    |    5 |
        |  3 | sato     |   11 |
        | 24 |          | 1111 |
        | 56 | iii      |  111 |
        | 78 | ppppp    | NULL |
        | 79 | eeee     |   33 |
        | 80 | eooooo   |   34 |
        | 81 | eoooff   |   36 |
        +----+----------+------+
        テーブルの内容を確認
    ・mysql> INSERT INTO member(username,age) value ("fffff",99) ;
        データの入力
------------------------------3H------------------------------
★先行教室見学
------------------------------4H------------------------------
★MySQL基礎
  ●IN
    ・mysql> SELECT * from member where age in ("20","34");
        +----+----------+------+
        | id | username | age  |
        +----+----------+------+
        |  1 | yamada   |   20 |
        | 80 | eooooo   |   34 |
        +----+----------+------+
      mysql> SELECT * from member where age = "20" or age ="34";
        +----+----------+------+
        | id | username | age  |
        +----+----------+------+
        |  1 | yamada   |   20 |
        | 80 | eooooo   |   34 |
        +----+----------+------+
      上の二つは同じ
  ●関数
    ・mysql> SELECT count(*) from member where age in ("20", "34");
        +----------+
        | count(*) |
        +----------+
        |        2 |
        +----------+
        行の数を出力する関数
        関数はこれ以外にも多数
  ●LIKE
      mysql> select * from member where username like "%e%";
      +----+----------+------+
      | id | username | age  |
      +----+----------+------+
      | 79 | eeee     |   33 |
      | 80 | eooooo   |   34 |
      | 81 | eoooff   |   36 |
      | 83 | eeeeee   |   95 |
      +----+----------+------+
    ・あいまい検索的に使える
  ●WHERE
    ・検索条件
  ●ORDER BY
    並び替え
      ・mysql> select *from member order by age desc;
        +----+----------+------+
        | id | username | age  |
        +----+----------+------+
        | 24 |          | 1111 |
        | 56 | iii      |  111 |
        | 82 | fffff    |   99 |
        | 83 | eeeeee   |   95 |
        | 81 | eoooff   |   36 |
        | 80 | eooooo   |   34 |
        | 79 | eeee     |   33 |
        |  1 | yamada   |   20 |
        |  3 | sato     |   11 |
        | 10 | aaaaa    |    5 |
        | 78 | ppppp    | NULL |
        +----+----------+------+
        desc→降順
      ・mysql> select *from member order by age asc;
        +----+----------+------+
        | id | username | age  |
        +----+----------+------+
        | 78 | ppppp    | NULL |
        | 10 | aaaaa    |    5 |
        |  3 | sato     |   11 |
        |  1 | yamada   |   20 |
        | 79 | eeee     |   33 |
        | 80 | eooooo   |   34 |
        | 81 | eoooff   |   36 |
        | 83 | eeeeee   |   95 |
        | 82 | fffff    |   99 |
        | 56 | iii      |  111 |
        | 24 |          | 1111 |
        +----+----------+------+
        asc→昇順
  ●WHEREとORDER BY
      は別の命令なので、同時に指定できる
    ・mysql> select * from member
          -> where age >20
          -> and username like "%e%"
          -> order by age asc;
      +----+----------+------+
      | id | username | age  |
      +----+----------+------+
      | 79 | eeee     |   33 |
      | 80 | eooooo   |   34 |
      | 81 | eoooff   |   36 |
      | 83 | eeeeee   |   95 |
      +----+----------+------+
      whereの後は検索条件
      order byの後はソートの条件
  ●CONCAT
      mysql> select concat(username,"さんの年齢は",age,"です") from member;
      +--------------------------------------------+
      | concat(username,"さんの年齢は",age,"です") |
      +--------------------------------------------+
      | yamadaさんの年齢は20です                   |
      | aaaaaさんの年齢は5です                     |
      | satoさんの年齢は11です                     |
      | さんの年齢は1111です                       |
      | iiiさんの年齢は111です                     |
      | NULL                                       |
      | eeeeさんの年齢は33です                     |
      | eoooooさんの年齢は34です                   |
      | eoooffさんの年齢は36です                   |
      | fffffさんの年齢は99です                    |
      | eeeeeeさんの年齢は95です                   |
      +--------------------------------------------+
      カラムとカラムの内容を連結して出力できる(編集はされない)
------------------------------5H------------------------------
★MySQL基礎2
  ●練習問題
------------------------------6H------------------------------
★MySQL基礎2
  ●入力したデータのチェック
    ・mysql> select * from bikyu_gurume_table;
      +----+----------------+--------------------+
      | id | prefcture_name | item_name          |
      +----+----------------+--------------------+
      |  1 | hokkaidou      | zangi              |
      |  2 | aomori         | igamenchi          |
      |  3 |                |                    |
      |  4 | iwate          | moriokajyajyamen   |
      |  5 | miyagi         | aburahudon         |
      |  6 | akita          | yokoteyakisoba     |
      |  7 | yamagata       | hiyasira-men       |
      |  8 | hukusima       | kuri-mubokkusu     |
      |  9 | miyagi         | mitudanngo         |
      | 10 | tochigi        | utunomiyagyouza    |
      | 11 | gunma          | yakimannjyuu       |
      | 12 | saitama        | suttate            |
      | 13 | chiba          | takeokara-men      |
      | 14 | tokyo          | monjyayaki         |
      | 15 | kanagawa       | sirokorohorumon    |
      | 16 | niigata        | itarian            |
      | 17 | yamanasi       | yosidaudon         |
      | 18 | nagano         | ro-men             |
      | 19 | toyama         | toyamaoden         |
      | 20 | isikawa        | hantonraisu        |
      | 21 | hukui          | borugarasisu       |
      | 22 | gihu           | tukemonosute-ki    |
      | 23 | sizuoka        | hujinomiyayakisoba |
      | 24 | aichi          | ankakesupagethi    |
      | 25 | mie            | tonteki            |
      | 26 | siga           | saradapan          |
      | 27 | kyoto          | issennyousyoku     |
      | 28 | osaka          | negiyaki           |
      | 29 | hyougo         | sobamesi           |
      | 30 | nara           |                    |
      | 31 | wakayama       | sechiyaki          |
      | 32 | tottori        | akaten             |
      | 33 | okayama        | ebimesi            |
      | 34 | hirosima       | okonomiyaki        |
      | 35 | tokusima       | fissyukatu         |
      | 36 | kagawa         | udon               |
      | 37 | ehime          | jyakokatu          |
      | 38 | hukuoka        | tenmado            |
      | 39 | saga           | sisirianraisu      |
      | 40 | nagasaki       | torukoraisu        |
      | 41 | kumamoto       | taipi-in           |
      | 42 | ooita          | toriten            |
      | 43 | miyazaki       | nikumakionigiri    |
      | 44 | kagosima       | sirokuma           |
      | 45 | okinawa        | takoraisu          |
      +----+----------------+--------------------+

    ・mysql> desc bikyu_gurume_table;
      +----------------+---------+------+-----+---------+----------------+
      | Field          | Type    | Null | Key | Default | Extra          |
      +----------------+---------+------+-----+---------+----------------+
      | id             | int(11) | NO   | PRI | NULL    | auto_increment |
      | prefcture_name | text    | YES  |     | NULL    |                |
      | item_name      | text    | YES  |     | NULL    |                |
      +----------------+---------+------+-----+---------+----------------+
    ・
  ●入力したデータの検索
    ・select文などで
  ●プライマリーキー
    ・主キー
      複数のレコードを登録した際に、絶対に重複しない値が指定されたカラム
    ・UNIQUEキー
      絶対に重複しないキー
      主キーと違い手のテーブルと連動
    ・外部キー
      →こんど説明
      プライマリーキーが指定されてないテーブルはあまりない(あるけど)
  ●CRUD
    ・クラッドと読む
        C  →  create    作成  (create,insert)
        R  →  read      読込  (select)
        U  →  update    更新  (alter,update)
        D  →  delete    削除  (delete,drop)
  ●データベースとテーブルとカラムの関係性
      データベース
          └テーブル
              └カラム
-----------------------------memo------------------------------
スペルミスが多くてなー

2012年2月27日月曜日

2012年02月24日 講義019日目

2012年02月24日
講義019日目
------------------------------1H------------------------------
★自己分析
------------------------------2H------------------------------
★MySQL基礎1
  ●テーブルの集合
  ●用語
    ・カラム
        列のこと
        項目名をつけていく
        カラム名が付いてない表はない
    ・レコード
        行のこと
  ●PHPとの絡み
    ・PHPでデータベースに問い合わせ→データベースがそれを返す
  ●MySQLの設定
    ・C:\pleiades\xampp\mysql\bin\my.ini を開く。
    ・文字コードの設定を追加
      25行目あたりの[mysqld] セクションに↓を追加
        default-character-set = utf8
        skip-character-set-client-handshake
        character-set-server = utf8
        collation-server = utf8_general_ci
        init-connect = SET NAMES utf8
      utf-8で統一する
    ・
      18行目あたりの[client]セクション
      151行目あたりの[mysql] セクション
      156行目あたりの[mysqldump] セクションに↓追加
        default-character-set = utf8
    ・起動させる
      C:\pleiades\xampp\mysql_start.bat
      でコマンドプロンプトから開くとエラーメッセージなどを確認できる
    ・コマンドプロンプトを開くとき
      win+rを押すとファイル名を指定して実行ウィンドウが出る
      そのウィンドウでcmdを入力して実行するとコマンドプロンプトが開く
    ・コマンドプロンプト上で、フォルダを開くときは
      パスを途中まで入力してtabキーを使うと候補を出してくれるので全部入力するより確実
     
      cd C:\pleiades\xampp\mysql\bin
      を入力
    ・cd→カレントディレクトリ
      コマンドでフォルダを移動する
      ディレクトリとフォルダは、同じものとして認識してかまわない
    ・mysql -u root
      を入力してmysql>に入る
    ・status
      を入力して文字コードの設定を確認
------------------------------3H------------------------------
★MySQL基礎1
  ●データベースを作ろう
    ・create database データベース名;
        create database study;
        で作ってみる
  ●データベースにログインできるユーザを作る
    ・GRANT ALL ON *.* TO teacher@"localhost" IDENTIFIED BY "password";
        GRANT ALL→権限
        *.*→全部のデータベース.全部のテーブル
        TO
      (例)GRANT ALL study.*→
          で権限を設定すると、
    ・flush privileges;
       
    ・exit
        ログアウト
    ・mysql -u teacher -p
        ログイン
    ・password
        を入力
    ・status
        でログイン情報を確認
        teacherでログインしてる
    ・DDL文
        GARANT
          権限の操作
        CREAT DATEBASE
          データベースを作る
        DROP DATABASE
          データベースを消す
        SHOW DATABASES
          データベースを確認する
    ・use study;
      データベースの選択
    ・create table member (
        テーブルを作る
      id int not null auto_increment,
        int(数字しか入らない) not null(何かが入ってないといけない
        auto_increment(自動に値を入れる)
      name text,
        text(文章)
      age int,
        int(数字しか入らない)
      primary key (id)
        プライマリーキー→(絶対に重複しない)
        テーブル上で一つだけ指定できる
        レコードを特定するためのキー
      );
------------------------------4H------------------------------
★MySQL基礎1
  ●SQLの文法
      DDL: Data Definition Language
        GRANT→データベースの定義
        CREAT→データベースを作る
        ALTER→定義変更
        RENAME→名前変更
      DML: Data Manipulation Language
        SELECT→データの入力
        select name, age from member;
        INSERT→データの取得
        insert into member (name,age) values ("aaaaa",44);
        UPDATE→データの変更
        update member set name = "yamada" where id = 1;
        DELETE→データの削除
        delete from member where id =2;
------------------------------5H------------------------------
★MySQL基礎1
  ●ALTERでテーブルの定義を変更してみる
      alter table member change name username text;
                         modify
                         add
                         drop
                         などがある
    ・DCL: Data Control Language
------------------------------6H------------------------------
★MySQL基礎2
  ●Myphpadmin
    ・xxamp-controlで
  ●mysqlでよく使われるデータ型
    ・char
        指定した桁数になるように空白が入る(byte単位で上限指定)
    ・varchar
        データの桁数と同じサイズに縮めてくれます(byte単位で上限指定)
    ・text
        char、varcharと違いデータの制限は無い
  ●比較演算子
    ・SELECT文で比較演算子を使ってみる
        SELECT age FROM member WHERE age >= 30 && age <40;
        ↑ageの30代を出すSQL文
    ・BETWEEN構文
        SELECT age FROM member WHERE age between 30 and 30;
       
----------------------------memo------------------------------
MySQLは面白い
Myphpadminの扱いは直感的でわかりやすい

2012年2月24日金曜日

2012年02月23日 講義018日目

2012年02月23日
講義018日目
------------------------------1H------------------------------
★職業能力基礎
  ●自己分析
    ・自分史を作る→書類にまとめる
    ・自分がどういう人間で、どういう経歴を持つか
    ・好きなものに対しての「何故」を、言葉で表現できるか
        五回問いを繰り返すと大抵答えに行き着く(六次の隔たりと関係があるのか?)
    ・自己分析してみる
        好きなこと、物→10個
        嫌いなこと、物→3個
        興味の無いもの→3個
------------------------------2H------------------------------
------------------------------3H------------------------------
★PHPプログラムのプレゼン
------------------------------4H------------------------------
------------------------------5H------------------------------
★PHPプログラミング
  ●プレゼンを踏まえて注意点、添削など
  input側(aaaaa.php)のソース
    ・<form action="aaaaa-output.php" method="post">

      <input type="text" name="names[]" >
      <input type="text" name="names[]" >

      <!--↓本来はjavascriptでやるのがよい -->
      <?php
      if($_GET["first"]=="n"){
          $cnt = ++$_GET["count"];
          for($i=0;$i<$cnt;$i++){
              echo "<input type=\"text\" name=\"names[]\">";
          }
      }else{
          $cnt =0;
      }
      ?>
      <br>
      <input type="checkbox" name="checks[one]" value="1">一番
      <input type="checkbox" name="checks[two]" value="2">二番
      <br>

      <input type="submit" value="送信">
      <input type="button" value="テキストボックスを増やす"
      onclick="location.href='aaaaa.php?count=<?php echo $cnt?>&first=n'">
      </form>
      output側(aaaaa-output.php)のソース
    ・<?php
      $names = $_POST["names"];
      $checks = $_POST["checks"];

      print_r($names);
      print_r($checks);

      $a ="aaa";
      $b ="bbb";

      if($a == "" || $b == null){
          echo "Notice!";
      }
      //空文字やnullの扱いについて
      //空文字とnullを区別しする場合は===で
      //nullは存在すらしないこと、空文字とは違う
      //「--」で比較する場合は、$a == ""統一する
      //「===」の場合であれば、上記記述でもかまわない

      if($a == '' || $b == ''){
          echo "Notice!";
      }
  ●用語について
    ・キロライン
        1000行のコードをあらわす単位
        1キロライン= 1000行のコード
        きれいなコードで、なるべく行数をおさえる
        まずは、コードのきれいさ(わかりやすさ)を優先、
        行数をおさえるのは後回しでよい
    ・API
        phpで言う所の関数
        予め用意されてるコードのまとまり
        提供されたAPIを利用すると処理をまとめられる
        提供してる各サービスによって使い方など、仕様が違う
------------------------------6H------------------------------
★PHPプログラミング
  ●
    ・データを送る側
        <form action ="~~.php" method"~~">
            <input type="text" name="mail">
            <input type="submit" value="送信">
        </form>
    ・データを受ける側
        $_POST["mail"];
        $_GET[""];
        $_FILE[""];
    スーパーグローバル変数$_POST,$GETで受け取る
  ●テスト解答
      ・絶対パス、相対パスについて
          /(ルート)が一番上を表現してる
      ・絶対url
          アプリケーション(ブラウザ等が)判断できるwebサイトを意味する絶対パス
      ・サーバー側から見た絶対パス
        ブラウザ側から見た絶対パス
        は正確には違う
        絶対パスについて考えるときは、誰にとっての一番上なのかを考える
      ・top>スケジュール>2月>11日
          などの自分に位置を教えてくれる表示のことを「パンくず」という
        「パンくず」    は、絶対パス
        「広告」        は、絶対url
        「このページのトップに戻る」は、相対パス
        であるのが良い
-----------------------------memo------------------------------
PHP基礎はとりあえず終了
明日はMysql基礎
構文が違うので切り替えて覚えるのが良い

2012年2月23日木曜日

2012年02月21日 講義017日目

2012年02月21日
講義017日目
------------------------------1H------------------------------
★チームミーティング
  ●先日のミーティングで出た案を実行する
  ●議事録の共有(ケースバイケース)
------------------------------2H------------------------------
★企業内実技
  ●情報に対する心構え
    ・情報管理
      ファイルの管理
        伝言で場所が伝えられるのが目安
      データの場合
        フォルダでツリー構造にして、情報を引き出しやすく
        フォルダ単位で引継ぎができるのが目安
      共有のルール
        ファイル名、ファイル形式なども決められているならそのルールに従う
    ・機密保持
      セキュリティの重要性
      データの機密性
        データを外部に持ち出す場合などは、必ず上司に確認
    ・ナレッジマネジメント
        社内間での情報共有化による効率化を図る手法
    ・プライバシーマーク
        企業の情報管理における基準
  ●業務に対する心構え
    ・早めの申告
        他の人のスケジュールにも気をつけておく
        失敗、ミスをしたとき→即、上司に報告
          上司がいない場合は電話かメールを使って極力早く連絡をとる
          失敗やミスを隠さないこと
    ・役割分担
        自分のできる範囲
        自分の許された範囲
      自分の作業範囲を把握しておく
------------------------------3H------------------------------
★小テスト
------------------------------4H------------------------------
------------------------------5H------------------------------
★プログラム発表練習
  ●発表スケジュール:10分
    ・作る予定だったシステムの説明
      ブラウザの表示を見せ、動きを説明
      コードレビュー
      htmlとphpのソースコードを見せて解説
    ・苦労した点
      未実装の部分
    ・質疑応答
-----------------------------memo------------------------------
人の書いたコードを見るのは面白い

2012年2月21日火曜日

2012年02月20日 講義016日目

2012年02月20日
講義016日目
------------------------------1H------------------------------
★職業能力基礎
  ●チームミーティング
    ・議題:より良い環境作り
      目的:机の配置、他
      条件:コードが床に着かない
           
      進行役:○○さん
      議事録:○○さん
    ・議事録の記録者
      日時
      参加者
      議題
      決まったこと、やること
      自分の主観は入れない
      事実に基づき、発言を客観的に記録する
      進行役
      議題から外れない
      認識のズレをなくす
    ・アイスブレイク
      発言する側の緊張をほぐすためのオリエンテーション的なグループワーク
------------------------------2H------------------------------
★PHPプログラミング実習
------------------------------3H------------------------------
------------------------------4H------------------------------
------------------------------5H------------------------------
------------------------------6H------------------------------
-----------------------------memo-----------------------------
時間内にできること、できないことの取捨選択
いくつかの段階に分けての作業工程で、徐々に組み立てていくとかの工夫が必要かも
できることからやる感じで、できることを増やしていくしかないなーと言う感想

2012年2月20日月曜日

2012年02月17日 講義015日目

2012年02月17日
講義015日目
------------------------------1H------------------------------
★職業能力基礎
  ●面談
    ・面談しているときには、会社の代表であることを忘れずに行動
    ・アプローチ話法
    ・避けるべき話題→政治、宗教の話、暗いニュースなど
                      競合他社の悪口や噂話などは慎む
    ・相手に不快感を与えない
    ・相手に合わせた会話
    ・押し付け口調にならないようにする
    ・マイナスイメージの話題はプラス方向に変換する
------------------------------2H------------------------------
  ●ドキュメント作成
    ・説明に使う資料
      ホームページの動き→エンドユーザ目線、スクリーンショットなどを活用
      入力されるデータ→phpだとフォーム絡み
    ・開発、管理、運営に使う資料(外部に出さない)
      データベースの構造→データの量が多いときつかうマッピング表
      SEO関連の設定
      テスト項目書→ログイン処理などのチェックリスト
                    クロスチェック、トリプルチェックで確認する
    意味のない資料はなるべく作らない
  ●スクリーンショットの取り方
    プリントスクリーンキー→貼り付け
    プリントスクリーンキー+ctrl+alt→プリントしたいウィンドウのみ→貼り付け
★PHP基礎
  ●外部ファイルを読み込む
    ソースの最初の方で読み込むのが良い
    ・require_once関数
      include
      include_once
      など色々ある
  ●ヒアドキュメント
    PHPで
    echo "<tr>";
    echo "<th>メールアドレス</th>";
    echo "<td>{$mailaddress}</td>";
    echo "</tr>";
    ヒアドキュメントで
    echo <<<EOF
    <tr>
    <th>メールアドレス</th>
    <td>{$mailaddress}</td>
    </tr>
    EOF;
    echo ""で書いてるのとほとんど同じ
    ↑の場合とは違いエスケープがいらない
    EOFの部分は任意の文字列
    だが、EOF(エンドオブファイル)ファイルの終端を表すために良く使われるので推奨
------------------------------3H------------------------------
★PHP基礎
  ●定数について
    ・定数
      常に同一の値を持つ
      difine関数を使うと、任意の定数を定義できる
      定数は全て大文字でつける(コーディング規約的に、小文字でもつけられるが)
    ・マジカル定数
      __LINE__→行の値を出してくれる
      など
------------------------------4H------------------------------
★クラス
  ●クラスとは
    ・変数と関数
      class IdData {
          //メンバ変数を定義する
          protected $id ="10";

          //関数(メソッド)を定義する
          function getId() {
              //メンバー変数は$this->変数名という形で参照する
              return $this->id;
          }
      }
      //new : クラス定義を元にしてデータを取得(インスタンス化)
      $test = new IdData();
      //->クラス内の関数や変数にアクセスする
      echo $test->getId();

      var_dump($test);
------------------------------5H------------------------------
★フォームとphpプログラムを使用して作成してみよう
  ●条件
    ①フォームから送られるデータは3個以上作ること
    ②2つ以上のphpファイルを作ること
    ③プログラムを作るにあたり
      ・配列
      ・条件分岐(if,switch)
      ・ループ(for,while,foreach)
      を各々一つ以上使うこと
    ・先にhtmlのみでガワ(見た目部分のみ)を作っておいてから
      ロジック部分を作る、という形を取ると作りやすい
    ・プログラムに時間を多く割いて作る
      コードのインデントや変数に気をつける
    ・うまく動かない場合でも、何をやろうとしてたか
      実装予定の処理を説明できるようにしておく
  例:文章ジェネレータ
    :電卓(この段階だとちょっと難しいかも)
------------------------------6H------------------------------
★フォームとphpプログラムを使用して作成してみよう
  ●プログラミング実習
-----------------------------memo------------------------------
今まで学習した材料で自分で使える簡単なプログラムを作る実習に入った
復習するには良いかも
とりあえず、形にして→壊しての繰り返しがいいかもしれない

2012年2月17日金曜日

2012年02月16日 講義014日目

2012年02月16日
講義014日目
------------------------------1H------------------------------
★職業能力開発基礎
  ●名刺の交換
  ●席順のマナー
    ・上座、下座
      様々なケースがあるが、相手に不快感を与えないことが大事
------------------------------2H------------------------------
★PHP実習
  ●winter_homework
------------------------------3H------------------------------
★PHP実習
  ●winter_homework解答
    ・割り算や剰余を出すときに0で割るとエラー(Warninng発生)
    ・elseif(sum1>=70 && $sum <=90)
    &&,(and)→どちらも条件にあう   →true
    ||,(or)→どちらかの条件にあう  →true
    !      →条件が成り立たない    →true
------------------------------4H------------------------------
★PHP実習  練習問題解答
------------------------------5H------------------------------
★PHP基礎
  ●変数のデータ型
    ・int     →整数型
    ・String  →文字列""
    ・Float   →浮動小数点型
    ・boolean →論理型(ture,false)
    ・array   →配列型[]
    ・Object  →クラスで使う
    ・Resource→外部のデータとの接続情報、ファイルポインタを管理するデータ型
    ・Null    →何も値が入っていないことを示すデータ型(空文字や0ではない)
  ●データ型確認
        <?php
      $test;
      var_dump($test);

      $test =10;
      echo "<br>";
      var_dump($test);

      $test ="文字列です";
      echo "<br>";
      var_dump($test);

      $test =1.2;
      echo "<br>";
      var_dump($test);

      $test =true;
      echo "<br>";
      var_dump($test);

      $test = array(1,2,3);
      echo"<br>";
      var_dump($test);

      $test = null;
      echo "<br>";
      var_dump($test);
    ●型変換
      //キャスト(型変換)
      //例:floatのデータをintにキャスト
      $test = 3.443;
      $cast = (int)$test;
      echo "<br>".$cast;
      //データ型も条件式として扱うには
      //「===」 「!==」という比較演算子を使う。
      echo "<br>";
      $zero = 0;
      $kara = "";
      $bdata = false;
      $ndata = null;

      if($zero == $bdata) {
          echo "一致しました<br>";
      }else{
          echo"一致しませんでした<br>";
      }
      if($zero === $bdata) {
          echo "一致しました<br>";
      }else{
          echo"一致しませんでした<br>";
      }
      echo "<br>";
      echo ($zero === $bdata) ? "一致しました" : "一致しませんでした";
      //論理型(boolean)は、ture,falseいずれかの値しか持たない。
      //型変換した際、false,は0、tureは1となる。
     
------------------------------6H------------------------------
★PHP基礎
  ●多次元配列
    ・配列の中に配列
    ・多次元配列をforeachする場合
      一番外側の配列でループする。
      連想配列にするなどで添え字を設定しておけば、
      それを元に狙った配列を取り出せる
  ●エラーメッセージ
    ・ini_set("display_errors","0");
      でエラーメッセージを出さないように設定することもできる
      初期値は1
      このコードが書いてあるところではエラーを出さない
    ・ini_set関数でphpの設定を書き換えることができる
      直接php.iniという設定ファイルを書き換えることでも設定を変更可能
-----------------------------memo------------------------------
ガンガン使っていくことしか覚える手段は無いかも
とにかく動かすことか

2012年2月16日木曜日

2012年02月15日 講義013日目

2012年02月15日
講義013日目
------------------------------1H------------------------------
★職業能力開発基礎
  ●応対マナー
    ・名刺交換→延長自我
    ・交換の時点で名前の確認(読み方等)などをする
    ・受け取った名刺は胸ポケット等にしまう(腰より下は良くない)
    ・目下の者から差し出す
    ・自分で作る場合→サイズは標準、小さめで渡した相手が管理しやすい形状
    ・名刺内の情報→氏名、名前、所属、連絡先
------------------------------2H------------------------------
★先行クラス見学
------------------------------3H------------------------------
★PHP実習
  ●正規表現
    ・[0-9]
      0から9までの数字なにか一つどれかを表す
      [a-z],[A-Z]
    ・[0-9][0-9]だと数字が二つ
    ・[0-9]+
      +の前に書かれてる内容がどれか一つ当てはまる(数字のみ選択したい時など)
    ・[0-9]*
      *の前に書かれてる内容が0個以上見つかったとき(全選択したい時など)
    2バイト文字は使えない
------------------------------4H------------------------------
★関数実習
------------------------------5H------------------------------
★練習問題実習
------------------------------6H------------------------------
★練習問題実習
-----------------------------memo------------------------------
変数は単語一つの場合に小文字で
複数の単語を使う場合に二個目以降の単語の頭文字を大文字にするとわかりやすい
全部大文字→定数
単語一つの頭文字大文字→クラス
と、書き分ける習慣

関数を作る時のコツ
関数を使わない処理を書いて、後で変数に置き換える

2012年2月15日水曜日

2012年02月10日 講義012日目

2012年02月10日
講義012日目
------------------------------1H------------------------------
★職業能力開発基礎
  ●電話応対
    ・用件のメモを取る
    ・名乗らない人物との応対
      相手の名前を確認
    ・聞き取れなかった
      聞き取れない理由を説明し、聞きなおす
      復唱する
    ・営業の電話
      上司に取り次ぐなど、あらかじめ設定された指示の通りに対応
------------------------------2H------------------------------
★関数
  ●目的のプログラム処理をまとめたもの
    ●配列の数を数える関数
      $arr = array(1,2,3);
      echo count($arr);
      echo "<br>";
    ●配列関数の紹介
      $arr = array("1"=>"仕事","2"=>"趣味","3"=>"その他","4"=>"その他2");
    ●count
      echo "count:配列の数を数える関数";
      echo "<br>";
      echo count($arr);
      echo "<br>";
    ●implode
      echo "count:配列の要素を特定の文字で連結して一つの文字列にする関数";
      echo "<br>";
      echo implode(".",$arr);
      echo "<br>";
    ●explode
      echo "count:文字列を特定の文字で区切って配列にする";
      echo "<br>";
      $mojiretu ="2012-02-10-11-56";
      $hairetu = explode("-",$mojiretu);
      print_r ($hairetu);
      echo "<br>";
     
    ・関数によっては()の中に複数のデータを持ち、「引数」という。
    ・引数は、カンマ「,」によって区切られる
    ・関数は実行されると処理に応じてデータを返す。
    ・「返り値」「戻り値」という。
    ・explode関数の戻り値は配列のデータ、count関数の戻り値は数値。
------------------------------3H------------------------------
★関数
  ●PHPマニュアルの読み方
    ・int→数字を入れる
    ・void→無、空
    ・string→文字列
    ・[]で書かれてる部分は省略可能
    ・関数の入れ子も可能
    ・自分で作ることもできる
      //引数one,twoの足し算結果を返す関数を作る
      function plusTwoNumbers($one, $two) {

          return $one + $two;

      }
     
      function→関数を定義
      ($one, $two)→$oneには第一引数に引き渡された値が入る。
                    $twoには第一引数に引き渡された値が入る。
      {}→関数が呼ばれた時の処理
      return→右側の結果を戻り値にして戻す
    ・関数は呼ばれて動き出す
------------------------------4H------------------------------
★関数
  ●スコープ
    ・変数が有効な範囲のこと
    ・関数外で参照しようとしても別々の変数として扱われる
  ●グローバルスコープ
    ・変数名などのシンボルがプログラム全体から参照可能なこと
    ・global を使うと関数内でもグローバルスコープにすることもできる
    ・関数内で変数を設定するのが一般的
  ●グローバル変数
    ・全てのスコープからアクセスできる変数のこと
  ●スーパーグローバル変数
    ・スコープ並びに処理が終わっても定義されたままになる変数がある
    ・phpが予め用意してる変数
      例)$_POST,$_GET,$_ENV,$_SESSION,$GLOBSALS,他
  ●省略できるパラメータ
    ・引数に代入演算子で初期値を与えられる
      関数が呼ばれた際に省略できるようになる
      echo plusTwoNumbers(7);  ←(引数の2個目を省略、入力したらそれが優先される)
      function plusTwoNumbers($one, $two =1) {  (←=1してるので引数の2個目は1)
      return $one + $two;
      }
  ●関数化させると便利になることがある
------------------------------5H------------------------------
★関数
  ●練習問題実習
------------------------------6H------------------------------
★関数
  ●練習問題実習
-----------------------------memo------------------------------
関数の存在で世界がグッと広がった感じがする
が、それ以前の連想配列などの知識が曖昧なので復習が必要だ


2012年2月9日木曜日

2012年02月09日 講義011日目

2012年02月09日
講義011日目
------------------------------1H------------------------------
★職業能力開発基礎
  ●電話応対実習
------------------------------2H------------------------------
★お問い合わせフォーム作成
  ●input.php
    ・入力画面
  ●conform.php
    ・確認画面
  ●submit.php
    ・完了画面
    ・
------------------------------3H------------------------------
★お問い合わせフォーム作成
  ●htmlとPHPの使い分け
    ・PHPにechoやprintでhtmlを出力させる
    ・PHPとhtmlを分ける
  ●input.php
    <form>で
  ●conform.php
    ・<?php
      $namae = $_POST["namae"];
      $mailaddress = $_POST["mailaddress"];
      $content = $_POST["content"];
      $age = $_POST["age"];
      $sex = $_POST["sex"];
      $prefcture = $_POST["prefcture"];
      $interest= $_POST["interest"];
    で、input.phpの内容を<table>で
------------------------------4H------------------------------
★PHP実習
  ●!=
    if($interests != ""){←(""に等しくない場合、$interestsが空っぽではない場合)
        foreach($interests as $interest){
            echo $interest_list[$interest] . " ";
        }
    }else{
        echo "なし";
    }
    ・if文は!=を使うケースが多い
------------------------------5H------------------------------
★PHP実習
  ●htmlの中でphpを動かす
    ・<input type="hidden"
      画面に出て来ないデータを扱う
      <input type="hidden" name="namae" value="<?php echo $namae;?>">
      value=""内にphpを記述して$namaeを呼び出してる
  ●予約文字
    ・プログラムを動かすために意味のある文字列
    ・属性名につかわれてる文字列は変数にはなるべく使わない方が良い
    (使った方がわかりやすい場合もある?)
  ●submit.php
    conform.phpからのデータを受け取る
    <input type="hidden"だから内容は表示されない
    お問い合わせありがとうございました。
    など、表示させるページを作る
 
------------------------------6H------------------------------
★PHP実習
  ●お問い合わせフォームの流れ
    ・formタグ内のinputやselect、textareaには必ず
      name属性が付く。これはデータを受け取る際に判別するため
    ・複数の要素があり得るデータはname属性の属性値に[]をつけることで、配列として扱える
      selectやcheckbox等
    ・<form action="./confirm.php" method="post">
      <input type="text" name="namae" value="">で送る
                            ↓
      $namae = $_POST["namae"]; で受け取る
      phpの処理で<form>からのデータを受け取る場合、$_POST,$_GETを使う。
      name属性で指定された属性値と$_POST,$_GETの添え字(キー値)は一致している必要がある。
    ・$namae = $_POST["namae"];などで受け取る場合
      $namaeと$_POST["namae"]は別物
      べつに、$aaaaa = $_POST["namae"]でもかまわない
      むしろ、$_POST["namae"]をプログラム内で使用してもかまわない
      しかし、同じ名前の変数に代入して使用したほうが色々使いやすいから
      ワンアクション多くしてる
  ●
     ・$interests= $_POST["interests"];は
       送るときに配列で送ってる
       <input type="checkbox" name="interests[]" value="1">仕事
       <input type="checkbox" name="interests[]" value="2">趣味
       <input type="checkbox" name="interests[]" value="3">その他
     ・$_POST["interests"];は[]で囲まれてるから配列
       送ったときinterestsは配列だったので、送られた時点で入れ子になってる
     ・<form action="/submit.php" method="post">
       <input type="hidden" name="namae" value="<?php echo $namae;?>">
  ●送り手の属性値と受け手の添え字は一致してなければならない
★関数
  ●echo date("Y-m-d H:i:s");
    echo date("Y年m月d日H:i:s");
  ●print_r();
-----------------------------memo------------------------------
メモが犠牲になってるが、理解することを優先したのでわりとなんとかなった気がする
しかし、完全に自分で扱える理解にするためにはあと2ステップほど必要である
まず扱うこと、それを説明することができることのステップを繰り返すことが重要な気がする
理解→それを元にした自分への説明という復習→問題を扱う…を繰り返すことが大事なのかも

2012年2月7日火曜日

2012年02月07日 講義010日目

2012年02月07日
講義010日目
------------------------------1H------------------------------
★職業能力開発基礎
  ●電話の受け方
    ・要点のメモ、認識を一致させる、確認の復唱
    ・わからない場合は折り返す(電話番号と所属、名前を確認)
    ・電話の最後に改めて自分の名前を名乗る
  ●電話をかける
    ・あらかじめ資料、メモなどを準備
    ・折り返し電話がほしいときに自分の連絡先を伝え忘れないように
    ・話のボリューム次第では相手の都合を考えて的確な手段で伝える
    ・伝言を伝えた相手の名前も控えておく
  ●アポイントメント
    ・決定した日時は基本的にずらさない
    ・時間が空く場合は先方に確認する
    ・遅れたりする場合は必ず先方に連絡をする
------------------------------2H------------------------------
  ●html補足
    ・フォーム
      enctype="multipart/form-deta
      method="post"
      を書き忘れないように注意
    ・get
      urlを書き換えることで、getで値を渡すことができる。
      formのmethod属性を"get"とする事で、送信先のurlも書き換わる
      getによるデータの渡し方のルール
      echo $_GET["id"]."<br>";
      「ファイル名」?「キー名」=「データ」
       http://kiso.com/html/output.php?id=getnotest
      複数のデータを渡すときは & を使う
      echo $_GET["id"]."<br>";
      echo $_GET["order"]."<br>";
       http://kiso.com/html/output.php?id=getnotest&order=asc
      「ファイル名」?「キー名」=「データ1」&「キー名2」=「データ2」
    ・postとgetの使い分け
      postは表示されない→ログイン周り、ファイルのアップロードなど
                          フォームの再送信画面が出る
      getは表示される→サイト内の検索など
                       googleなどの検索でもgetを使ってる
                       urlだけ見る
★CSSの基礎
  ●CSS(シーエスエス)とは
    Cascading Style Sheets(カスケーディング・スタイルシート)の略称。
  ●書き方のパターン
    ・内部記述
      HTMLのヘッダー部分に直接記述(非推奨)
    ・インライン記述
      HTMLのタグに直接記述(非推奨)
      例)style="text-becoreation:none;"など
    ・外部記述
      外部ファイルに記述し、ヘッダーで読み込む(推奨)
  ●セレクタ
    ・スタイルシートを適用する対象
  ●プロパティ
    ・適用するスタイルの種類
------------------------------3H------------------------------
★CSSの基礎
  ●内部記述
      HTMLのヘッダー部分に直接記述(非推奨)
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <title></title>
      <style type="text/css">
      p {
      font-weight:bold;
      }
      </style>
      </head>
  ●インライン記述
      HTMLのタグに直接記述(非推奨)
      <p style="font-weight:bold;">pタグはスタイルシートでbold(太字)指定されている</p>
  ●外部記述
      外部ファイルに記述し、ヘッダーで読み込む(推奨)
      ・kiso.com直下にcssフォルダを作成
        /css/style.css
        cssを
        p {
        font-weight:bold;
        }
        記述
      ・htmlの<head>に
        <link href="/css/style.css" rel="stylesheet"
                    type="text/css" media="all" />
  ●コメントアウト
    /*~*/で
  ●セレクタの種類
    ・要素型セレクタ
      要素名で指定した要素
    ・全称セレクタ
      すべての要素を指定する
    ・classセレクタ
      要素名.クラス名(クラス名で定義)
    ・idセレクタ
      要素名#id名(classと同じ動きをするが、一つのページに一つだけ使う)
    ・複数のセレクタ
      セレクタ,セレクタで複数を定義
    ・子孫セレクタ
      セレクタ半角スペースセレクタで下の階層のみに反映
------------------------------4H------------------------------
★css基礎
  ●プロパティ
    ・margin:
      指定の仕方→margin:10 20 0 10
    ・padding:
      指定の仕方→padding-right:0;
                  padding-left:0;
                  padding-top:0;
                  padding-bottom:0;
  ●カラーコード
    ・16進数
------------------------------5H------------------------------
★CSS基礎
  ●実習
    ・左ナビ2カラムなど基本的なレイアウトの実習
------------------------------6H------------------------------
★用語解説
  ●キャメルケース
    ・ロジックの中で意味のある単語を表すために(任意の単語)
    ・contentwrapper→contentWrapperなど大文字を混ぜる
      単語の最初でも良いContent_wrapperなど
      が、PHPではクラスに使われることが多く
      関数、変数にも表現の特徴がある
    ・単語の区切りがわかりやすい
    ・_でキャメルケースを表現してる場合もある
  ●CGI
    ・webサーバと連動してプログラムを動かすための環境のこと
    ・CGIの使えない環境→htmlやcssしか使えない
      CGIの使える環境→php,perl,java,ruby等を使える
      例)PHPが動くCGIの環境を持っている
★お問い合わせフォームの準備
  ●eclipseでphpプロジェクトotoiawaseフォルダを作成
    hostsファイルに追加……
    設定方法は
    2012年01月30日講義005日目3Hを参照
    apacheの再起動が不完全だったので(exitボタンで再起動した気になっていた)
    うまく設定が反映されてなかったのですげー時間を無駄にした
    こういうことの積み重ねか……
-----------------------------memo------------------------------
ブラインドタッチが不完全なのでやばい
記号とかの場所を完全に覚えないとスピードが足りない

2012年2月6日月曜日

2012年02月06日 講義009日目

2012年02月06日
講義009日目
------------------------------1H------------------------------
★職業能力開発基礎
  ●電話対応
    ・電話対応でのトラブル
    ・即答を求められる場合は後で確認して折り返す→わからないで終わらない
    ・無駄な時間をかけない
    ・一対一の会話なので、相手との認識のズレをなくして会話する
    ・電話対応は慣れることが大事
    ・会社を代表して話してるという自覚を持って会話をする
    ・メモ用紙と筆記用具は常に持っておく
    ・電話をかけた後、受けた後は連絡を徹底する
    ・自分の  会社→弊社
              上司→呼び捨てでかまわない
      相手の  会社→御社
              だれでも→さん付け
------------------------------2H------------------------------
★HTML基礎
  ●タグ
    ・基本的にHTMLタグは小文字で記述する
     (大文字でも動くけど見た目の統一で小文字でいい)
    ・タグで構成されたテキストファイルをブラウザが読み込んで表示する
    ・webサーバはブラウザに出力されるテキストファイルを返す
    ・タグは無数にあるので検索したりして探そう
  ●属性値
    ・<font color="red">
      <font color="#ff0000">
      <font size="20">
      <font size="20" color="#ff0000">
  ●特殊文字
    ・半角スペースなどの表現は→&nbsp;
    ・htmlとしてではなく、<>を表示する場合などに使われる
    ・全角スペースはそのままで表示される
      文章内での使用はかまわないが、コーディングには基本全角スペースは使わない
  ●</>(閉じタグ)を持たないタグ
    ・<br>とか
  ●<img>
    ・リンク先のタイトルと alt= の文章が一致してるとSEO的に良い
    ・ src=
  ●・絶対パス
      ツリー構造の一番上から記述
    ・相対パス
      現在位置から記述
      省略できる
      「.」 →ピリオド一つは現在位置から見たパスの位置を示す
      「..」→ピリオド二つは現在位置から見たパスの位置
      「/」 →
      現在、講義のwebサーバはhtdocs/kiso.com/を一番上と認識してる
    ・どっちを使うかは構成次第によって違う
      必ずしも同じフォルダの中に画像があるわけではない
      imageフォルダを設定する場合が多い
------------------------------3H------------------------------
先行教室の見学
------------------------------4H------------------------------
------------------------------5H------------------------------
★html基礎
  ●コメントアウト
    ・<!--から-->で囲む
    ・ソースの表示では見えてしまう
  ●<h1></h1>
    ・見出し→文字を大きく
    ・見出し一つのページには一つ(SEO的に)
  ●<p></p>
    ・段落
    ・段落後に行間ができるのが<br>との違い
    ・<p></p>に囲まれた中に<br>が入るのがhtml構文では望ましい
  ●文字を強調
    ・<b>
    ・<em>
    ・<strong>→キーワードと連動(SEO)
  ●リンクを貼る
    ・<a></a>
    ・href=(エイチレフ)
    ・たとえば、<a href="http://www.yahoo.co.jp">Yahoo!</a>
    ・タグの入れ子
      <a href="http://www.yahoo.co.jp">
      <img src="image/Sunset.jpg"
           width="500"←指定しなければデフォルトで
           height="600"←指定しなければデフォルトで
           alt="夕日の画像">
      </a>
☆●テーブルタグ
    ・<table>←表
        <tr>←行
         <th>名前</th>←見出し
         <th>画像</th>
        </tr>

        <tr>
         <td>田中</td>←データ
         <td><img src="/images/sample.gif"
                  width="200" height="150" alt="滝の画像"></td>
        </tr>

      </table>
    PHPとの関連的に重要なタグ
  ●<div>
    ・ブロック要素
    ・タグ単位で範囲を指定できるため、
    ・idやclassといったcssの属性を記述しやすくなる
    ・くわしくはcss基礎で
------------------------------6H------------------------------
★html基礎
  ●フォーム
    ・ファイルのアップロードをする場合
     「ebctyp="multipart/form-data"」が必要になる
      <form action="./output.php"method="post"
      enctype="multipart/form-data">
   ・ ニックネーム:
      <input type="text" name="nickname" value="aaaa">
      type="text"は、一行のテキストボックス
    ・コメント:
      <textarea name="comment" rows="10" cols="60"></textarea>
    ・パスワード:
      <input type="password" name="pass">
    ・カテゴリ:
      <input type="checkbox" name="category[]" value="1">赤
      <input type="checkbox" name="category[]" value="2">青
      配列で受け取ることができる
    ・性別:
      <input type="radio" name="gender" value="1">男
      <input type="radio" name="gender" value="2">女
    ・写真のアップロード
      <input type="file" name="photo">
    ・HIDDENは見えない(右クリックでソースを確認)
      <input type="hidden" name="member_id" value="19">
    ・セレクトボックス
      <select name="category">
        <option value="1">勉強</option>
        <option value="2">仕事</option>
        <option value="3">遊び</option>
      </select>
    ・送信ボタン
      <input type="submit" name="送信する">
  </form>
-----------------------------memo------------------------------
先行してる教室で、簡単なwebサービスのプレゼン発表を見学した
一月後にはああいうレベルである程度のカタチにできるのかやはり不安になってきた
ちょっとあせりも出てきたのでコツコツ取りこぼさないように覚えていくしかない

2012年02月03日 講義008日目

2012年02月03日
講義008日目
------------------------------1H------------------------------
★職業能力開発基礎
  ●報告・連絡・相談の重要性
    ・情報の共有
  ●整理・整頓
    ・PC内の整理整頓
    ・フォルダ管理の重要性
    ・ファイル名_日付で管理など
    ・エクセルでの管理
    ・後で参照するときのことを考えて管理
    ・その都度書類は片付ける→後回しだと絶対に溜まってしまうので
    ・就業時には必ず片付ける→
    ・共有物はつかったら戻す
    ・通路には邪魔なものを置かない
    ・席を立つときは書類を伏せる、片付けるなどで情報の保護をする
    ・PCのロック→XPはwin+Lでロックできる
  ●五つの態度
    ・規律性、協調性、積極性、責任性、向上心
  ●五つの意識
    ・顧客意識、コスト意識、納期意識、改善意識、安全意識
------------------------------2H------------------------------
★PHP基礎1
  ●while文
    ・breakでループ処理とswitch命令を大カッコが閉じるところまで抜ける
    ・break 1 ←数字で一つ上の
    ・
------------------------------3H------------------------------
★PHP基礎2  配列
  ●array
    ・一つの変数に複数の値を格納するのが配列
    ・$data = array("値1","値2",……)
    ・$data[0]←0番目のデータ
    ・特定のルールでデータを格納したいとき
    ・[]の中のことをindexと呼ぶ
    ・配列の中に配列を入れる(多次元配列)ことも可能
    ・変数に入る型なら
    ・print_r()かvar_dump()で配列の中身を構造ごと出力することができる
      (ソースの表示でインデントつきの内容を確認できる)
    ・
  ●サクラエディタの正規表現での置換技のために
    \t (タブ)
    .*(ピリオドに一致するものすべて)
      →すなわち\t.*は「タブから」行末まで全部
    \r\n (改行)
    ^ (行頭)
    \n(改行矢印↓)
    \r(改行矢印←)
    .(なにか一文字)
------------------------------4H------------------------------
★PHP基礎2  配列
  ●$変数[]="";
    ・arrayと同じで配列を定義できる
☆関数
  ●さまざまな便利な機能
    ・配列を操ったり、する機能もあるが後日
  ●連想配列
    ・添字を文字列にできる
    ・$country = array('japan' => '日本', 'usa' => 'アメリカ', 'france' => 'フランス');
  ●$_POST["name"]←添字を文字列にしてる
      $_POST→グローバル変数
☆グローバル変数→PHPがあらかじめ用意してくれてる変数
  基本的にPHPはローカル変数
  ●配列のルール
    ・$countrysのように文字列の語尾にsを付けると配列であることを示す変数名にしておく
  ●スコープ
    ・特定の変数がどの範囲まで使えるか
------------------------------5H------------------------------
★PHP基礎1
  ●foreach
    ・foreach(配列 as ループ内での変数名){
      }
    ・配列をベースに配列の数だけループする
    ・配列の[インデックス(添字)]を表示する
      $schedules =array("7:00","9:00","12:00");

      foreach($schedules as $schedule){
          echo "次の実行時間";
          echo $schedule;
          echo "<br>";
      }
    ・配列の[インデックス(添字)]と"中身"を表示する
      $schedules =array("起床" => "7:00",
                        "出勤" => "9:00",
                        "昼食" => "12:00");

      foreach($schedules as $key=>$value){
          echo $key;
          echo $value;
          echo "<br>";
      }   
    ・
------------------------------6H------------------------------
★ループで
  ●<body>
      <form action="./foreach-output.php" method= "post">

        <select name="jikantai">
            <?php $minutes =array("00","30");?>
            <?php for($i=0;$i<24;$i++){?>

                <?php foreach($minutes as $minute){?>

                <option value="<?php echo $i?>:<?php echo $minute?>">
                <?php echo $i?>:<?php echo $minute?>
                </option>

                <?php }?>

          <?php }?>

        </select>

        <input type="submit" name="送信する">
      </form>
    </body>
  ●マジックナンバー
    ・よく使われる数字はプログラムの中に後でソースを読む人が、
      その数字の意味がわからなくなる場合がある
    ・数字を直に置くのではなく、変数で定義して使う
-----------------------------memo------------------------------
スコープ、グローバル変数、変数表が必要かどうかについての話
PHPは自由度が高いのかな?という印象を持った

2012年2月3日金曜日

2012年02月01日 講義007日目

2012年02月01日
講義007日目
------------------------------1H------------------------------
★職業能力開発基礎
  ●スケジュールと優先順位
    ・納期に間に合わせる
    ・余裕が大事
    ・自分が何の仕事を抱えてるかを管理する(日誌を作成するなど)
    ・スケジュールに従い仕事を進める→スピードアップを図るよりも早めの行動が好循環を生む
    ・フリーランスなどの場合は作業の遅れをカバーしてくれるのは自分しかしないので進行管理は重要
    ・持ち越せる作業の判断は自分だけですると、急な状況に対処できない場合を生む可能性が出る
    ・手帳でスケジュール管理、ノートでタスク管理
    ・ケータイでメモは職場の状況による
    ・アポイントを取ったら事前の準備
    ・メモを取り忘れたと思ったら、再確認
  ●指示の受け方
    ・前向きに受け止める→意味のない仕事は無い(ようにする)
    ・積極的に取り組む→バランスを取りながら暴走せずに
    ・創意工夫を心がける→代替手段など別の切り口を意識する
    ・指示内容の疑問点は話が終わってからまとめて聞く
    ・内容の復唱で確認する→認識のズレを未然に防ぐ
    ・直属の上司からの指示の最中、その上位の上司からの指示が入った場合は直属の上司に確認
      緊急の場合や直属の上司に連絡が取れない等の場合→上位の上司にその旨報告し実行
★テキストメールとHTMLメール
  ●現場によってはHTMLメールは良くない場合があるので、迷ったらテキストメール
    gmailはhtmlメールなので切り替えて使う事もできる
------------------------------2H------------------------------
★PHP基礎1
  ●セレクトボックスの作成
    ・<select name="kenmei">
          <option value="長野県">長野県</option>
          <option value="千葉県">千葉県</option>
          <option value="埼玉県">埼玉県</option>
          <option value="滋賀県">滋賀県</option>
      </select>
    ・<option value="">""内の文章が送られる
  ●switch文の練習問題
    ・長野県、千葉県、埼玉県、滋賀県の県庁所在地を表示するswitch文を作成してください。
    ・年齢別に小学校1年生~6年生までを表示させるswtich文を作成してください。
    ・1日のうちの時間帯によって変わる自分の行動をswitch文を使って作成してください。
    (例:0時から7時→就寝、9時から18時→仕事、21時から21時30分→風呂...etc)
------------------------------3H------------------------------
★2Hの回答
  ●練習問題2
    caseとprintする内容が同じ場合
    breakまで処理を続ける
    <?php
    echo $_POST["jikoku"];
    echo "の予定は→";
    $jikoku = $_POST["jikoku"];
    switch($jikoku){
        case "0000":
        case "0030":
        case "0100":
        case "0130":
        case "0200":
        case "0230":
        case "0300":
        case "0330":
        case "0400":
            print "就寝";
            break;
  ●長い同じようなコードを作る、処理するには
    ・ループ処理
    ・表計算ソフトを使う(正規表現による検索と置換)
        →時刻を表計算ソフトで作る
        →サクラエディタで時刻の列をコピー
        →cntl+Rで置換でメニュー開く
        置換前に^(←一行の最初の意味の記号)
        置換後に    case"
        正規表現にチェック
        すべて置換→実行
        置換→特定の文字列を特定の文字列に変更
    ・^→一行の最初
      $→一行の末尾
    ・eclipseではctrl+Fで検索/置換メニューを出して正規表現による置換を実行できる
    ・http://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE
------------------------------4H------------------------------
★ループ
  ●クリエイターコースの見学
------------------------------5H------------------------------
------------------------------6H------------------------------
★ループ処理
  ●for
    ・for($i = 0初期値式;$ <10条件式;$i++増減式) {
          print $i.<br>;←<br>もループする
      }
      初期値→最初の値
      条件式→一致してる間ループを続ける
      増減式→ループを一回するたびに増減させる
    ・条件式を間違うと無限ループも起こせてしまうので注意
    ・ループ内にif文やループ文を入れ子にできる
    ・基本的に増減式には++,--しか使わない(できるけどコーディング規約を準拠するなら)
    ・FizzBuzz問題
☆●foreach→配列の講義で説明
    ・PHPで最も使用頻度の高いループ
  ●while
    ・条件式が満たされてる間、繰り返し処理を実行する
    ・echo "whileの参考プログラム";
      $i= 0;
       while($i < 10) {
     
          //$iが0~9の間実行される
          print $i++ . " ";
     
      }
       ↑$i++にするか++$iにするかで初期値を変えることができる
-----------------------------memo------------------------------
これぞプログラムっぽい内容に突入してきた
頭で覚えるよりも回数重ねて覚えた方がいいかもと思った
構文同士の組み合わせで、アイデア次第で無限にできることがあるのかもという予感
今のところ「難しい」と「楽しい」のバランスがある程度安定してる感じ
思いついたことはとにかく形にしてみることあ大事なのかも

2012年2月1日水曜日

2012年01月31日 講義006日目

2012年01月31日
講義006日目
------------------------------1H------------------------------
★職業能力開発基礎
  ●お辞儀
    ・会釈、敬礼、最敬礼
    ・お辞儀し終わったら相手の目を見て笑顔で印象が良くなる
    ・「すみません」よりも「ありがとうございます」の方が効果的
  ●資料の取り扱い
    ・社内秘、社外秘などが印字された機密資料は外に持ち出さない
      そういう印が付いてなくても資料の持ち出しは上司の許可を取る
    ・データを持ち出す際の注意点
      基本、パスワードをかける
      絶対になくさないように気をつける
      無くしたことを発見したら、即上司に報告し交番で遺失物届けなどの対応をする
  ●就業マナー
    ・進行管理
      計画→実行→結果を確認→計画と結果の不具合や差異を処理
      計画を立てる時→5W1H
      マネジメントサイクル:PDCAサイクル Plan→Do→Check→Action
      自分のアクションの確認をこまめに取ることで認識の差異を減らしていく
      文言や会話の文章を自分なりの文体(別のアプローチ)に直して確認し修正する
     
------------------------------2H------------------------------
★PHP基礎1
  ●昨日(PHP基礎1)の復習
    ・vhostの編集
    <VirtualHost *:80>
        DocumentRoot C:\pleiades\xampp\htdocs
        ServerName localhost
        <Directory "C:\pleiades\xampp\htdocs">
            AllowOverride All
            Options -Includes -ExecCGI
        </Directory>
    </VirtualHost>
    localhost用の設定をを追加する
    NameVirtualHost *:80を有効にするとデフォルトではlocalhostを設定してる(?
    localhostも使いたければ、それを生かした状態で追加設定しなければならない(?
    ・PHPは変数の型を意識しない
    ・演算子の強さについて→()で制御
    ・ピリオド.で文章の結合がPHP特有
    ・スペースの表現→チェックマークなどが使われる
------------------------------3H------------------------------
★PHP基礎1
  ●比較演算子
  ●代入演算子
    ・+=
      $number = 10;
      $number = $number + 5;より$number += 5;にした方がシンプルな場合に
  ●論理演算子
    ・条件をいくつか指定できる
  ●if
    ・if(条件) {

          print '処理';
      }else{    //elseはifの条件式に一致しなかった場合実行される
          print '処理';
      }
  ●elseif
    ・if(条件) {

          print '処理';
      }elseif(2つ目の条件){    //elseifはifの条件式に一致しなかった場合実行される
          print '処理';
      }elseif(3つ目の条件){    //elseifは前の条件に一致しなかった場合実行される
          print '処理';
      }else{
☆●文字列を数字と比較すると0として扱われる
    ただし、文字列の最初からの文字が数字ならその数字にで扱われる
    数字を文字列扱い””にした場合、数字として扱える
  ●真偽値
    tureとfalse
    真と偽
    条件一致 →ture
    条件不一致→false
  ●フローチャート
    規格がある仕様書等で使われる
------------------------------4H------------------------------
★PHP基礎1
  ●htmlのフォームとの連携
     ・kiso.com下にphp1_input.php
       <form>を使う
       method=
              urlを使わないpost
              urlを使うget
       name=
       <input>
    ・kiso.com下にphp1_output.php
            $x = $_POST["number"];//←依然作ったifelse文の変数を受け取れるように書き換える
      if($x > 10) {
          print '変数$Xは10よりも大きい';
      }
      elseif($x > 5){
          print '変数$Xは5よりも大きい';
      }
      elseif($x > 1){
          print '変数$Xは1よりも大きい';
      }
      else{
          print '変数$xは1よりも小さい';
      }
     
      ex→echo $x;exit;
  ●上記を一つのファイルにまとめることもできる(自分自身にデータを送信することもできる)
------------------------------5H------------------------------
★if文の練習
  ●条件式
      論理演算子で条件をいくつも設定できる
      ・!→否定
        if($aaa !="あああ")"あああ"でない
      ・||→どちらか
        ture||falseでもfalse||tureでもどちらかtrueであれば一致
      ・&&→完全一致
        ture&&tureでないと一致しない
      複数の条件から結果を得たい場合に使う
------------------------------6H------------------------------
★SEOとファイル構成
  ●文字コードを指定するmetaタグを<head>内に
    ・<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    ・ファイル名を変更ショートカットF2で変更
  ●urlに使うのはアンダーバーよりハイフンの方が良い
    -が付いてるとgoogleが別々の文字として認識する
    _だと同じ文字であると認識
  ●検索エンジンに好まれるツリー構造に
    今日作ったphp1-input.phpとphp1-output.phpをphp1フォルダを作ってそこに入れておく
★条件構文
  ●switch構文
    分岐が多いと、ifよりもソースが見やすい
    四つ以上分岐がある場合はswitch
    基本的に比較演算子の==を判断(<>を使う場合はif)
    case→条件を指定
    break→{}で括られてる中の処理を終了させる
    どのケースでもない場合default:で表示させる文を設定しておくとそれが出る
-----------------------------memo------------------------------
if文がよくわからんけど慣れしてるので慣れればいいという楽観思考
ノド痛い