作成日:2021/04/12 更新日:2022/08/03
#8 PHPを便利にするいろんな記号
変数をつなげる
文字列や変数をつなぐためには.を使います。
<?php
$name    = '大橋太郎';
$measage = 'こんにちは!';
echo $name . $measage;		/* 大橋太郎こんにちは */
echo $name . 'さん' . $measage;	/* 大橋太郎さんこんにちは */
$aisatsu  = 'おはようございます、';
$aisatsu .= '寒いですね'. $name . '。';
echo $aisatsu;			/* おはようございます、寒いですね大橋太郎。 */
?>
足し算、引き算、掛け算、割り算
簡単な四則演算(+ - × ÷)をさせるための記号です。
<?php
$a = 2;
$b = 5;
echo ($a + 3);	/* 2+3 = 5 */
echo -$b;		/* -5 */
echo ($b - 3);	/* 5-3 = 2 */
echo ($a * $b);	/* 2*5 = 10 */
echo ($a / $b);	/* 2/5 = 0.4 */
echo ($a % $b);	/* 2%5 = 2 */
echo ($a ** $b);	/* 2**5 = 32 */
?>
| 例 | 名前 | 結果 | 
| $a + $b | 足し算(加算) | $a および $b の合計 | 
| -$a | 負(正)にする | プラスをマイナスに、マイナスをプラスに変更 | 
| $a - $b | 引き算(減算) | $a および $b の積 | 
| $a * $b | 掛け算(乗算) | $a および $b の積 | 
| $a / $b | 割り算(除算) | $a および $b の商 | 
| $a % $b | 剰余 | $a を $b で割った余り | 
| $a ** $b | 累乗 | $a の $b 乗。(PHP 5.6 から導入) | 
変数に代入する
文字や数字を代入するための記号です。
<?php
$a = 3;
echo $a;  /* 3 */
$b = 5;
$c = 8;
$b += $c; /* $b+$cの値を、$bに代入 */
echo $b;  /* 13 */
?>
1づつ足す(引く)
<?php
$i = 5;
echo ++$i;	/* 6 */
$i = 10;
echo $i++;	/* 10 */
echo $i;	/* 11 */
$i = 20;
echo --$i;	/* 19 */
$i = 50;
echo $i--;	/* 50 */
echo $i;	/* 49 */
?>
++: インクリメントと呼びます。
--: デクリメントと呼びます。
| 例 | 結果 | 
| ++$i | $i に 1 を加え、$i を返します | 
| $i++ | $i を返し、$i に1を加えます | 
| --$i | $i から 1 を引き、$i を返します。 | 
| $i-- | $i を返し、$i から 1 を引きます。 | 
条件を`2つ`にする
<?php
$math    = 48; /* 数学 */
$english = 87; /* 英語 */
if ($math > 50 || $english > 60){   /* 条件: 数学は50点以上、英語は60点以上、どちらかが真なら。という式 */
  echo "合格です";	/* 条件のどちらかがtrueならこの文が実行 */
}else{
  echo "不合格です";	/* 条件のどちらもfalseならこの文が実行 */
}
?>
| 例 | 結果 | 
| $a and $b | $a および $b が共に TRUE なら TRUE | 
| $a && $b | $a および $b が共に TRUE なら TRUE | 
| $a or $b | $a または $b のどちらかが TRUE なら TRUE | 
| $a || $b | $a または $b のどちらかが TRUE なら TRUE | 
| $a xor $b | $a または $b のどちらかが TRUE でかつ両方とも TRUE でない場合に TRUE | 
| !$a | $a が TRUE でない場合 TRUE | 
データの型を比較する
<?php
$a = '1'; /* string型(文字列) */
$b = 1;   /* integer型(整数)*/
if($a == $b){
  echo '真';  /* どちらも`1`となりこの文が実行される */
}else{
  echo '偽';
}
if($a === $b){
  echo '真';
}else{
  echo '偽';  /* 型が違うので、この文が実行される */
}
?>
| = | 右辺の値を左辺に代入 | |
| == | 等しい(データ型を無視) | 等しいとtrue | 
| === | 等しい(データ型も含む) | 等しいとtrue | 
| != | 等しくない | 等しくないとtrue(<>も同じ) | 
| !== | 等しくない(データ型も含む) | 等しくないとtrue | 
| $a < $b | $aが$bより小さい | 小さいtrue | 
| $a <= $b | $aが$bより小さいか等しい | 小さいか等しいとtrue | 
データの型を知ろう
データ型とはデータの性質(種類)のことです。| 文字型 | 'Hello!' '1' | strings。文字として認識される文字列のこと | 
| 整数型 | 1, 100 | integer。足し算引き算できる数字 | 
| 不動小数点数型 | 1.4142, -0.08, 120.5 | float。どこかに小数点が入るような数字 | 
| 論理型 | TRUE FALSE | boolean。正しいか、誤っているか | 
| 配列型 | array('りんご', 'apple') | array | 
| オブジェクト型 | $obj = new someclass(); | object | 
| ヌル型 | NULL | null。無とか空。ゼロではない | 
if文を簡単に。三項演算子
<?php
$lang = 'English';
$message = $lang === 'Japanese' ? 'こんにちは' : 'Hello';
echo $message;  /* Helloが出力されます */
?>
$lang == 'Japanese' であれば、'こんにちは' そうでないなら 'Hello' を表示させるという式です。
その結果を変数$messageに代入してね。という式です。
if文のような機能ですが、あくまで式(値)を呼び出すだけです。ifのように条件式はかけませんが、シンプルに式を書けます。
  実際にこれらの記号は演算子と呼ばれ、にはそれぞれ名称がついていますが、機能を先に身につけて名称はおいおい覚えておきましょう。
PHPマニュアル
  
  
    
PHPマニュアル
| +、-、*、/、%代数演算子 | 簡単な四則演算(+ - × ÷)をさせるための記号です。 | 
| +代入演算子 | 文字や数字を代入するための記号です。 | 
| .結合演算子 | 左と右のものを足す | 
| .=結合代入演算子 | $a .= $bの結果は$a = $a . $b 文字列の結合 | 
| +=、-=、*=算術代入演算子 | $a += $bの結果は$a = $a + $b | 
| and、||、&&理論演算子 | 条件の複数指定 | 
| ++、--加算子/減算子 | 1つづつ足す(引く) | 
#9 データベース(DB)を作る
データベースとはわかりやすく言えばエクセルのおばけ 👻 です。エクセルでも簡単な計算はできますが、
データベースはリレーショナル データベース マネジメント システム
複数のテーブルデータを連携させたデータベース管理の考え方 という考え方で、
SQLという言語を使ってデータをかなり複雑に計算できようになります。
データベースで使われる用語としては「テーブル」「カラム」「レコード」があります。
  
例)
  


もしくは「http://localhost:8888/phpMyAdmin/」をクリック


  
こんな感じのテーブルデータを作ります。まず最初に1つのテーブルと対応する4つのカラムを作ります。
▼テーブル、カラムの登録方法

top_yとleft_xはNULLにチェックを入れてね!(ここにチェック入れておくと、データが入らなかったら「データ無し」を登録できます)
  
データ型や属性はたくさん種類があるので、よく使うものを抜粋しています。
  
小数点を使う場合は「FLOAT、DOUBLE、DECIMAL」を使います。
  
  
またはSQL文で発行することも出来ます。phpMyAdminのSQLタブに入力することで実行できます。
まず、挿入 > ID1に、新垣結衣という名前を入れて、(x,y)座標をそれぞれ(810, 56)にします。
▼レコードの登録方法

※文字コードUTF-8の書類をエクセルで開くと文字化けします。エクセルで開きたいときはテキストエディタで文字コードをSHIFT-JISに変更します。
CSVダウンロード
▼CSVのインポート方法
フォーマット特有のオプション:「Update data....」は、「インポート時に重複したキーが見つかった場合にデータを更新する」という意味です。 1番の新垣結衣さんが先に入っていて重複してしまいますから、強制上書きするオプションです。
ここまでで、データベースを作り、テーブルと各カラム(データ)を挿入できました。 データベースに登録したデータを、ブラウザ(html+php)で表示させていきましょう。
データベースで使われる用語としては「テーブル」「カラム」「レコード」があります。
| データベース | テーブルを入れるための一つのくくり | 
| テーブル | エクセルで言うところのシートです。複数のテーブル同士を組み合わせて欲しいデータを抽出します。 | 
| カラム | データを入れるための枠で、一般的には列(縦軸)と表現されます。エクセルでいう`セル`のようなものです。 | 
| レコード | データそのものです。1カラムに対して複数のレコード(横軸)が入ります。 | 
例)
| No. | 氏名 | 年齢 | |
| 1 | 新垣結衣 | 23 | ←レコード | 
| 2 | 齋藤飛鳥 | 20 | ←レコード | 
| 3 | 佐々木希 | 30 | ←レコード | 
| ↑カラム | ↑カラム | ↑カラム | 
phpMyAdminでMySQLを設定する準備


もしくは「http://localhost:8888/phpMyAdmin/」をクリック

①データベースの作成

②テーブルの作成
| id | name | left_x | top_y | 
|---|---|---|---|
| 1 | 新垣結衣 | 810 | 56 | 
| 2 | 北川景子 | 631 | 302 | 
| 3 | 佐々木希 | 788 | 326 | 
| ︙ | ︙ | ︙ | ︙ | 
▼テーブル、カラムの登録方法

top_yとleft_xはNULLにチェックを入れてね!(ここにチェック入れておくと、データが入らなかったら「データ無し」を登録できます)
| 名前 | データ型 | 属性 | NULL | AI | 
|---|---|---|---|---|
| id | INT | UNSIGNED | AUTO_INCREMENT | |
| name | TEXT | |||
| left_x | INT | UNSIGNED | ✔ | |
| top_y | INT | UNSIGNED | ✔ | 
データ型や属性はたくさん種類があるので、よく使うものを抜粋しています。
データ型
| 数値型 | 値の範囲 | UNSIGNED付与(整数のみ) | 
|---|---|---|
| TINYINT | -128 から 127 | 0 から 255 | 
| SMALLINT | -32,768 から 32,767 | 0 から 65,535 | 
| MEDIUMINT | -8,388,608 から 8,388,607 | 0 から 16,777,215 | 
| INT | -2,147,483,648 から 2,147,483,647 | 0 から 4,294,967,295 | 
小数点を使う場合は「FLOAT、DOUBLE、DECIMAL」を使います。
| 文字型 | 値の範囲(文字) | 使い所 | 
|---|---|---|
| CHAR(M) | 255 | 固定長文字列(M文字以下の文字が入る場合は空白で補う) | 
| VARCHAR(M) | 65,535 | 可変長文字列(M文字以下の文字が入る場合でも空白で補わない) | 
| TEXT | 65,535 | 可変長文字列(大きな文字列を入れたい場合) | 
| TINYTEXT | 255 | TEXTの短い版 | 
属性
| UNSIGNED | 整数(アン サインド) | マイナスの数値は入れないよ | 
| BINARY | バイナリー | 検索時に大文字小文字を区別 | 
NULL
NULL値はデータが存在しないことを表す値。空白" "や0とは違います。NOT NULLでNULLが入れられなくなります。PRIMARY KEY
主キー。主キー制約が設定されたカラムの値は、ほかのカラムとの重複不可、かつNULLも不可。データにダブりがあるとだめな項目に。AI
AUTO_INCREMENT(オート インクリメント)。自動で連番の値が格納されます。
CREATE TABLE `cri_sortable`.`sortable` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
  `name` TEXT NOT NULL ,
  `left_x` INT UNSIGNED NULL ,
  `top_y` INT UNSIGNED NULL ,
  PRIMARY KEY ( `id` )
) ENGINE = InnoDB
③レコードの登録
データベース「cri_sortable」に「sortable」というテーブルを作ったので。sortableテーブルにレコード(データ)を登録してみましょう。まず、挿入 > ID1に、新垣結衣という名前を入れて、(x,y)座標をそれぞれ(810, 56)にします。
▼レコードの登録方法

※文字コードUTF-8の書類をエクセルで開くと文字化けします。エクセルで開きたいときはテキストエディタで文字コードをSHIFT-JISに変更します。
CSVダウンロード
▼CSVのインポート方法

フォーマット特有のオプション:「Update data....」は、「インポート時に重複したキーが見つかった場合にデータを更新する」という意味です。 1番の新垣結衣さんが先に入っていて重複してしまいますから、強制上書きするオプションです。
ここまでで、データベースを作り、テーブルと各カラム(データ)を挿入できました。 データベースに登録したデータを、ブラウザ(html+php)で表示させていきましょう。
 入門
入門 基礎
基礎 応用
応用 実践フロントエンド
実践フロントエンド 実践バックエンド
実践バックエンド デザイン
デザイン キッズ
キッズ