logo

パレット - カラフルに🎨

Palette — ビジュアルページビルダー、デザインの専門知識は不要です。

ライブデモ パレットをダウンロード

Scroll

PHP レッスン — レッスン 4 — 画像の処理、GD2 ライブラリ

08/12/2019, by Ivan

前のレッスンで DB へのクエリの書き方を学んだので、今回はクエリの書き方にはあまり注目せず、単にクエリを書く練習をします。また、クエリの記述を PHP の他の機能の学習と組み合わせていきます。まずは画像の処理から始めましょう。前のレッスンの 1 つですでにファイルをアップロードし、アップロードされたファイル用の Files テーブルもあります。同じテーブルに画像をアップロードしましょう。ただしまず、素材作成フォームに写真アップロード用のフィールドを追加する必要があります。

PHP レッスン — レッスン 3.6 — MySQL DB の操作。JOIN 演算子の種類。

08/12/2019, by Ivan

MySQL では、JOIN による抽出をさまざまな方法で行えます。これらすべての種類のクエリを取り上げていきます。JOIN を伴うすべてのクエリのリストです:

  1. INNER JOIN
  2. LEFT JOIN
  3. 右のテーブルとの交差なしの LEFT JOIN
  4. RIGHT JOIN
  5. 左のテーブルとの交差なしの RIGHT JOIN
  6. FULL OUTER
  7. 左または右のテーブルが空の FULL OUTER

 

これらの JOIN の種類の図解です:

SQL

PHP レッスン — レッスン 3.5 — MySQL DB の操作。JOIN 演算子。サーバーへのファイルアップロード。

08/12/2019, by Ivan

このレッスンを書き始める前に、JOIN 演算子を使ったクエリをどう教えるのが良いか長く考えました。というのも、JOIN 演算子は複数のテーブルから同時に抽出するために必要だからです。もう 1 つテーブルが必要なので、それを作りましょう。このレッスンでフォームを通じてアップロードするファイル用のテーブルを作ることを提案します。DB の操作とフォームの操作という 2 つの異なる方向のレッスンになります。

では、ファイルアップロード用のフィールドの追加から始めましょう。フォームがファイルをアップロードできるようにするには、そのパラメーターにフォームの種類を追加する必要があります:

$content .=	'<form action="' . $_SERVER['PHP_SELF'] . '" method="post" enctype="multipart/form-data">'; 

こうして、enctype パラメーターを通じて、このフォームでファイルをアップロードすることをブラウザに知らせます。フォームの準備ができたので、ファイルアップロードのフィールドを追加しましょう:

PHP レッスン — レッスン 3.4 — MySQL DB の操作。DELETE 削除クエリ。

08/12/2019, by Ivan

前のレッスンでは、管理クラス simpleCMS に新しいメソッドを追加する方法を学びました。では、レコードを削除するもう 1 つのメソッド delete() を追加しましょう。

メソッドはいつものように追加します:

public function delete($mid){

}  

 ご覧のとおり、パラメーター $mid、つまり私たちのレコードの id を渡します。前のレッスンを思い出すと、私たちはパラメーターを get リクエストから直接渡す別の方法を使うことにしました。今回は、別の方法でパラメーターを渡してみます。

さて、メソッドを定義したので、index.php ファイルにパスの処理を書きましょう:

PHP レッスン — レッスン 3.3 — MySQL DB の操作。UPDATE によるデータの更新。

08/12/2019, by Ivan

私たちはすでに SELECT、INSERT INTO といった MySQL の演算子に触れました。今度は、DB にすでに入力されたデータをどう更新するか学ぶ時です。そのために SQL の UPDATE 演算子を使います。ただしまず、index.php ファイルを変更して、もう 1 つのパスの処理を追加しましょう。次のコードを見つけてください:

      if( $_GET['admin'] == 1 ){ // URL に admin 変数があれば
	    print $obj->display_admin(); // 変数があれば、フォームを表示する
	  }else{
	    print $obj->display_public(); // 変数がなければ、メッセージを表示する
	  }

そして、次のコードに置き換えてください:

PHP レッスン — レッスン 3.2 — MySQL DB の操作。INSERT INTO によるデータの挿入。SELECT によるデータの抽出

08/12/2019, by Ivan

前のレッスンでは、サイト用のテーブルを作りました。このレッスンでは、テーブルを改良し、いよいよ DB を扱い始めます。そこにデータを入力し、テーブルからそのデータを取り出します。難しいことは特にないと思うので、始めましょう。

まず、messages テーブルを改良することを提案します。今はデータ用のフィールドがありますが、レコードに番号を付けるためのフィールドがもう 1 つ必要です。Drupal の DB を開くと、node テーブルには nid フィールドがあり、それでノードに番号を付けています。私たちの messages テーブルでも同じようにする必要があります。

phpMyAdmin(Denwer では http://localhost/tools/phpmyadmin)に入り、テーブルを編集しましょう。図のように、テーブルの先頭にもう 1 つ列を追加します:

PHP レッスン — レッスン 3.1 — MySQL DB の操作。テーブルの作成。

08/12/2019, by Ivan

前のレッスンでは、データベースとの接続を作りました。このレッスンでは、将来のサイト用のテーブルを作ります。まず、必要な DB の名前を simpleCMS クラスに追加しましょう:

class simpleCMS {  // 管理クラス

  public $host = 'localhost'; // DB を扱うための変数
  public $username = 'root';
  public $password = '';
  public $db = 'testDB';

次に、この DB を MySQL サーバー上に作成する必要があります。あなたも Denwer を使っているなら、そのために phpMyAdmin があります。Denwer に含まれています。このリンクから phpMyAdmin に入り、新しい DB を作成してください:

PHP レッスン — レッスン 3 — MySQL DB の操作。

08/12/2019, by Ivan

3 つ目のレッスンをいきなり MySQL DB の操作から始めるのは早すぎると思うかもしれません。しかし、そうではないと信じてください。PHP を Web プログラミングの言語として学びながら DB の操作を学ばないのは、インターネットのないコンピューターを持つのと同じです。そのようなコンピューターで作業はできますが、情報をどこからも得られません。ですから、歯を食いしばって、たとえ SQL 言語について何も知らなくても、DB への SQL クエリを書き始めましょう。

SQL(Structured Query Language —「構造化問い合わせ言語」) — 表形式のデータベースでデータの作成・変更・管理に用いられる汎用のコンピューター言語です。SQL はテーブル内のレコードの計算に基づいています。

PHP レッスン — レッスン 2 — ファイルの操作:開く、書き込む、読み込む。

08/12/2019, by Ivan

前のレッスンでは、ゲストブック、ブログ、あるいはチャットの骨組みを作りました。あとは機能を追加するだけです。このレッスンでは、レコードをファイルに記録し、ファイルからレコードを出力します。

PHP にはファイルを扱う関数が多くあります。そのいくつかを取り上げます。おそらくあなたのサイトはデータをファイルではなくデータベースに記録するでしょう(これは確信しています)。ですから、要点を理解できるよう、そのうちのいくつかだけを取り上げます。データベースの操作は後で扱います。

では、前のレッスンで作ったファイルがなければ、1 つ前のレッスンに戻ってそれらのファイルをダウンロードしてください。

レコード追加のフォームに移りましょう:

/index.php?admin=1

このフォームからレコードを追加します。これらのレコードを処理するには、index.php ページ(このページにフォームからデータが送られます)で、$_POST 変数に値があるか確認する必要があります。確認はとても簡単です:

PHP レッスン — レッスン 1 — フォームの操作

08/12/2019, by Ivan

日常生活では、私たちはテレビ、ラジオ、インターネット、直接の会話を通じて情報を得ます。サイトもユーザーから情報を得ますが、それは特別な形、すなわちフォームを通じて行います。フォームは、アンケート調査の用紙や、何かの公的機関に申請する際に記入する用紙と比べられます。フォームの要素のセットは限られていますが、フォームは、サイトの動作に必要なすべての情報をユーザーから受け取れるようにします。

レッスンをより実り多いものにするため、フォーム作成に関する HTML のレッスンを読んでおくとよいでしょう。

最初のレッスンを始める前に、私たちのアプリケーションの骨組み、すなわちサイトの動作を管理するクラスを作りましょう。

class フォルダを作り、その中に、サイト管理クラスを含む simpleCMS.php ファイルを置きます。また、この管理を起動する index.php ファイルも作ります。さらに、メッセージ用の空のフォルダと、スタイルファイル style.css も作ります。次のようなファイルとフォルダになります:

class/simpleCMS.php

messages/

index.php

style.css