DB、PHP

■DB
□特定のレコードを削除する
□結合とはなにか
□副問い合わせを使う

PHP
□セッション


■DB
□特定のレコードを削除する
例題「社員IDが17の人が退職しちゃったんだよ。削除しておいてね」

DELETE
FROM
 Employees
WHERE
 EmployeeID = 17
;



□結合とはなにか
結合とはその名のとおり、2つのテーブルをある条件でくっつけることです。2つのテーブルをくっつけることを繰り返して、複数のテーブル同士を互いに手を取り合う状態にさせることです。

□副問い合わせを使う
例題「販売数量がゼロの商品を教えてくれ」

SELECT
 *
FROM
 Products
WHERE
 ProductID NOT IN
 (
  SELECT
    ProductID
  FROM
    Sales
 )
;

これは最初正直何やってんのかよくわかりませんでした。
販売数量がゼロの商品を取り出す為に、まずテーブルSalesから売れた商品のID以外を取り出します。
そしてそれを、テーブルProductsで確認すれば、売れなかった商品を見ることができます。



PHP
□セッション
•セッションとは、「クライアントがどのような状況であるか」を管理するための仕組みである。
•セッションはCookieを使って実現されている。
•セッションを開始するには、session_start関数を使う

更新するごとにカウントを増やしていくセッションを使ったアクセスカウンタを作る。

<?php

session_start();

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

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

?>

前に作ったカウントを、1.2.3.5.6.7.9.10.11.13.14....21まで、4の倍数だけ表示されないようなプログラムを作る。

<?php

session_start();

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

  }
}
$_SESSION['cou']=$access;
echo $access;
?>


ログインして、ブラウザを閉じてもそのログイン内容が保存されるものをつくる。

<?php
//sessionの設定、有効期限は2時間(60*60*2)
 session_set_cookie_params(60*60*2);
  //session開始
  session_start();
  //ログインボタンが押されたら以下の処理を行う
if($_SERVER['REQUEST_METHOD'] == 'POST'){
  //POSTの内容を拾ってくる
  $id=$_POST['id'];
  //POST内容があればセッション内容を上書き
  if(isset($id)){
    $_SESSION['id']=$id;
  }
  //初期画面では何もしない
}else{
}
//セッションの中が空なら、空をいれる
if(!isset($_SESSION['id'])){
  $_SESSION['id']='';
}
?>

<html>
<head>
</head>
<body>

<form action="" method="POST">
<input type="text" name='id' value="<?php echo $_SESSION['id']; ?>"/>
<input type="submit" name="btr_submit" value="ログイン"/>
</form>

</body>
</html>

今日は、PHPが大パニックでした。
セッション難しいです。
ちょっとめげそうだけど、ちょうど休みだし、踏ん張ろうと思う。