もう週末ですか…

早いもので明日はもうお休みです。
このまえGWが明けたばかりだというのに…こうお休みがいっぱいだと、平日どう過ごしていたか感覚がなかなか戻ってこないような心配があります。
そういえば、GW中に念願の美容院に行ってきました!卒業式のためにずっとのばしていた髪をばっさり切ってやりました!!
もともと髪が短いのが普通だったので(学生時代はよく男の子に間違えられてました…短すぎて。ちなみに運動部には一切所属したことはありません)、長いのが嫌で仕方なかったんです。
ああ、さっぱり!!
…しかし、イメージしていたよりも明るい色にされてしまい…ちょっと悩んでます。
本当はもっとオレンジ茶色っぽいのがよかったな…


さて、近況報告はこれくらいにして。
本日の授業感想と授業ノートです。

☆本日のメニュー☆
  1. DB vol.8
  2. PHP vol.18

授業感想


DB vol.8

昨日に引き続き、レコードを削除することと、新しく副問い合わせをやりました。
削除することは、昨日のニッキにも書きましたが、まだやっぱりコワイです。怖いので、いつも最初にトランザクションできる環境になってるかを確認してしまって、問題を解くのがワンテンポ遅れています…。
こんなおっかなびっくりで大丈夫なのだろうか…
新しくやった副問い合わせは、混乱の極みのような気がします。本当に日本語の解釈の違いで文の書き方がかわってしまうんだな…と言うのが感想です。解読自体はすんなり行くのですが、どう形にしていけばいいのかがまだ混乱してしまっています。
問題をこなして慣れていきたいと思います。
あと、特別講義(1)と題してある結合についてをやりました。
うーんちょっとまだしっかり理解できていないかもしれません。もわもわっとしたイメージはできたのですが、それを言葉にするとなるとちょっと難しい現状です。まずはそのもわもわしたイメージを絵に描き出してみようと思います。

PHP vol.18

今日は新しくセッションをやりました。脳内イメージをイラストに描きながら授業を受けたのですが、ちょっとイメージがまだつかめていないのが正直なところです。実践的にセッションをつかって二つほど書いてみて、なんとなーくですが解った気がしています。胸を張って解った!と言えないのが悔しいです…またまとめノートにまとめながら復習をしていく必要があるようです。授業後半にやったフォーム要素は昨日の自習時間にやったこともあって、結構スムーズに出てきました!
すらすらーっとやりたいことが頭に浮かぶとやはりテンションがあがって楽しい気分になるものですね^^
ただそのやりたいことをどうやれば反映できるのかを試行錯誤しているうちに、むむむ…と詰まってしまうところが、まだいろいろ追いつけてないな、と思うところです。
新しいところをやったら、必ずすぐに復習と繰り返しを忘れずに、速く自分のものにして使いこなせるようになっていきたいと思います。

授業ノート


DB vol.8

【授業内容】
特定のレコードを削除する
結合とはなにか?
副問い合わせを使う

○特定のレコードを削除する

☆テーブルCustomersからCustomerIDが10000以上のデータを削除しなさい

DELETE
FROM
Customers
WHERE
CustomerID >= 10000
;

○副問い合わせを使う

☆テーブルEmployeesから各EmployeeIDについて、SalaryのAmountの最高が300000以上のデータを取り出し、EmployeeID、EmployeeNameを表示しなさい。

SELECT
EmployeeID
,EmployeeName
FROM
Employees
WHERE
EmployeeID IN
(
SELECT
EmployeeID
FROM
Salary
GROUP BY
EmployeeID
HAVING
MAX(Amount) >= 300000
)
;


[自習時間にやった分]

○特定のレコードを削除する
☆テーブルSalesからSaleID=1006のデータを削除しなさい

DELETE
FROM
Sales
WHERE
SaleID=1006
;

☆テーブルSalaryからEmployeeID=10,PayDate=2007-10-01のデータを削除しなさい。

DELETE
FROM
Salary
WHERE
EmployeeID=10
AND
PayDate='2007-10-01'
;

○副問い合わせを使う
☆テーブルSalesのQuantityが100以上のレコードを取り出し、SaleID、Quantity、CustomerID、CustomerNameを表示しなさい。

SELECT
SaleID
,Quantity
,CustomerID
,
(
SELECT
CustomerName
FROM
Customers
WHERE
CustomerID = Sales.CustomerID
) AS "顧客名"
FROM
Sales
WHERE
Quantity >= 100
;


PHP vol.17

【授業内容】
PHPでのセッション管理


○セッションを使ってアクセスカウンターを作ってみるその1
☆更新するたびにカウンターがあがっていくように設定する。

<?php
session_start();

$access = 1;
if(isset($_SESSION["access"])){
    $access = (int)$_SESSION["access"] +1;
}
$_SESSION["access"] = $access;

echo $access . "回目のアクセスです";
?>


○セッションを使ってアクセスカウンターを作ってみるその2
☆4の倍数のときだけスキップするようなカウンターを作る。

<?php
session_start();

$access = 1;


    if(isset($_SESSION["access"]) && $_SESSION["access"]){
        if($_SESSION["access"]%4 == 3){
            $access = $_SESSION["access"]+2;
        }else{
            $access = $_SESSION["access"]+1;
        }
    }

    $_SESSION["access"] = $access;
    echo $access . "回目のアクセスです";
?>

☆別解☆(自分はこれがやりたかったのです、本当は)

<?php
session_start();

$access = 1;


    if(isset($_SESSION["access"]) && $_SESSION["access"]<21){
        $_SESSION["access"] ++;
        if($_SESSION["access"]%4 == 0){
           $access = $_SESSION["access"]++;
        }else{
        }
    }
$access=$_SESSION["access"];

echo $access . "回目のアクセスです";


?>

○セッションを使ってログイン画面を作ってみる。
※穴埋め式で問題を解いていきました。

<?php
//sessionの設定、有効期限は2時間(60*60*2)
session_set_cookie_params(60*60*2);
//sessionの開始
session_start();

//ログインボタンが押されたら以下の処理を行う

$id="";
if($_SERVER["REQUEST_METHOD"] == "POST"){

//POST内容を拾ってくる。

$id = $_POST["id"];

//POST内容があればセッションに内容を上書きする。

if(isset($_POST["id"])){
    $_SESSION["id"] = $id;
    }
//初期画面では何もしない

if(!isset($_SESSION["id"])){
    $_SESSION["id"]="";
}
}
?>
<html>
<head>
<title>ログイン画面を作ってみよう</title>
</head>
<form action="" method="POST">
<input type="text" size="20" name="id" value="<?php echo $_SESSION["id"];?>"/>
<input type="submit" name="btn_submit" value="ログイン" />
</form>

セッションの開始関数の上にスペースや改行がしてあると、正常に作動しない。
一番上に持ってくるのが吉。


以上、本日の授業でした!