Author: admin

データベースでSQLを実行するメソッド

文字列のデータベース名をつけたとします。その次のhostはデータベースのアドレスとなります。今回の場合は、同じサーバー上にデータベースがあるということで、自分自身を示す、「127.0.0.1」を指定することになります。charsetというのが最後にありますが、これはcharsetとして、データベースとやりとりする際の文字コードを指定するということです。index.phpにbody要素を作ります。データベースにはセキュリティを確保するためのパスワードが設定されていることがあるそうです。レンタルサーバーの場合には、自分で設定できる場合があります。またあらかじめ設定されている場合もあります。その場合は、設定通知書やマイページのようなページに記載があります。そこを確認するようにしましょう。XAMPP/MAMPといったものは設定を確認して、ウェブブラウザで標示しましょう。エラーメッセージが標示されなかれば接続は完了となります。エラーメッセージが標示されてしまうなら、パラメーターが間違えているためということです。見直しましょう。作成したPDOオブジェクトで、SQL文を実行する場合はexecメソッドを使います。データベースに接続ができたら、index.phpにプログラムを追加しましょう。execメソッドは、接続しているデータベースでSQLを実行するメソッドとなります。INSERTやUPDATE、DELETEといったSQLを実行することができるメソッドを使うようにしましょう。実行した行数を実行すると、得ることができます。SQL文というのは、クオーテーションマークで囲まなければなりません。

phpMyAdminについて

phpMyAdminにアクセスします。画面の左側の先に作ったデータベースmydbというものをクリックします。画面上手のタブにSQLをクリックします。テキストフィールドがでますので、SQLを入力して実行ボタンを押します。「SELECT*FROM item;」するとデータの一覧が表示されます。そうしてもう一度SQLタブをクリックして、今度は「INSERT INTO items SET ID=100、name=’商品100’;」と入力します。そして実行ボタンをクリックして、画面上手に「1行挿入しました」と表示されます。そして、「SELECT」から始まるSQLという言語の使い方となります。データベースというのは、変更や削除、データの挿入、表示、テーブルの作成やデータベーススペースの作成というようなものすべてをSQLで操作しなければなりません。phpMyAdminを利用する場合、マウス操作でさまざまな操作が行えます。このようなツールがSQLの作成や実行を代行するということになります。phpMyAdminさえ覚えたら、ややこしいSQLを覚えなくていいのかというように思えます。が、phpMyAdminというのには、できることにも限りがあるといいます。SQLだととても複雑な構文を作ったりできるので、効率よくデータを処理することができます。しかし、phpMyAdminのマウス操作だけでつくれるSQLというのには限りがあります。そのため、SQLはより高度な操作をするために欠かせないということになります。PHPとMySQLを連携させて、ウェブシステムを作っていきます。SQLの知識はこうときに必須です。phpMyAdminを活用しましょう。

headerのエラー

headers already sent by…」です。これは、ヘッダがすでに送信されてしまったので、ヘッダを変えられなかったという意味となります。ウェブページというのは、内容を送信する直前にヘッダ情報を送信します。そのため、ヘッダを送信しようとしても、内容が送信したあとだと、もう、遅いということになってしまいます。これはHTML以外の空白や改行でも同じようにエラーとなってしまいます。エラーが出たら、headerファンクションよりも前に、おかしくないかどうか、しっかりと確認しなければなりません。1行ごとにテーブルセルの色を変えるというテクニックがあります。これは長いテーブルのときなどに、背景色を一行ごとに見やすくというデザインにすることです。プログラムでこれを使うなら、剰余算が一番です。これはとても応用範囲が広いプログラムです。ぜひ、マスターしましょう。剰余算というのは、算術演算記号のことです。割り算をししたときのあまりを求めるという計算式のことです。たとえば「5%2」は5÷2が2余り1で、1となります。計算式としては、夜乗算を使うということはあまりありませんが、繰り返し処理と組み合わせて使うことで、効果が出てきます。「◯回に一回」という処理が簡単に行えるのです。例えば「2回に1回」という処理をしたいというとき、カウントする変数を「$i」としたら、処理する条件を「$i%2」とします。ある数を割った余りはその数未満の数字を繰り返す特性があります。

ファイルの読み込みについて

通常、ファイルは「ドキュメントルート」よりも外に保存することになります。レンタルサーバーで、ウェブページを公開するのに、FTPで接続したフォルダから「htdocs」「httpdoc」「www」などといったフォルダの中に保存するように説明されるそうです。これがドキュメントルートといいます。このフォルダの中に保存したファイルというのは、ウェブプラウザで閲覧できるということで、このフォルダよりも、外にファイルを保存しておきましょう。使っているレンタルサーバーのパスなどを確認してみましょう。ファイルの保存ができたら、今度は読み込みをしてみるといいでしょう。これも簡単にできます。これができるようになると、ファイルへの追記もできます。ファイルを読み込むには「file_get_cotents]ファンクションを使います。パラメーターは1つです。読み込んだファイルは、変数にいったん保存します。それを自由に利用することができます。非常に簡単扱うことができます。ファイルを読み込んで画面に表示するというプログラムはあります。わりとあるので、これを一気に行うファンクション「readfile」が準備されています。読み込んだ内容には、変数に代入することはできません。読み込ん絵から内容を加工したいときには、「file_get_contents」を使います。ファイルを付きするには、ファイルの読み込みとファイルの書き込みを組み合わせます。ファイルを読み込んで内容を付け足して保存します。これは、最後に保存したファイルを再び読み込んで画面に表示しているというプログラムを作ります。内容が追加されるとファイルに書き込めば完了となります。

Mac、OSXの場合について

Macの場合のダウンロードで初期画面が出たら、ここでは「Lauch MAMP」を選びます。「MAMP PRO]は有料の拡張機能版となります。そこから起動します。アプリケーションフォルダからMAMPを起動させましょう。サーバー起動をクリックしてください。これでWebサーバーが起動となります。それからファイルを実行用のフォルダにコピーしましょう。「/Applications/MAMP/htdocs/」ここでsample01.phpというファイルを実行してみましょう。Webプラウザで「http://localhost:8888/sample01.php」と打ち込んでください。ここまでできたら、次はファイルを編集するためのエディタソフトを準備しましょう。Windows、Macとどちらも付属しているソフトがあります。ただ、これらは使い勝手があまりよくありません。別に用意した方が無難です。好みのソフトを選んでみましょう。いくつか挙げます。「Visual Studio Code」「Atom」「Sublime Text」の3つはWindowsとMacどちらでも使えます。他にもありますので試してみるのもいいと思います。Webプラウザで作成したプログラムを確認するという作業をします。そのために、Webプラウザを用意するのですが、Windows、Macには標準で搭載されているものがあります。ただ、これは、勉強するにはあまり適していません。GoogleのChrome(クローム)をインストールすると良いでしょう。準備を整えたらPHPを使ったプログラムを作ります。プログラムとは「計画」、「演目」という意味です。

PHPでカレンダーを作ってみよう

日別のカレンダーを作ってみましょう。まず、数字ですが、1から365まで必要です。これを手作業でやるとなると大変です。PHPで「繰り返し」のぷるゴラムを使って作成すると簡単です。1から数字を書き出すという単調な作業は辛いものです。こういったものはプログラムを作れば一気に大量に処理することができます。「繰り返し」という制御構造です。PHPでは繰り返しの制御構造は、「while」と「for」という構文で作ります。whileを使ってブログラムを作成してみます。「$i=1; while($i <= 365){print($i.”/n”); $i++;}となります。「i」という変数名はプログラムでよく利用される文字の1つです。「index」の略称で、1から順番に数えるときなどに使ったりします。「$n」や「$x」というように、人によって好きなアルファベットを使うこともあります。$iは一般的に使われているようです。また、iを使っている最中に、さらに変数が必要という場合があります。そういったときは、「j」が使われます。これはただ単にiの次がjだからです。これで足りなければ、k、l、m、と続きます。2を表示するには、「$i=1; print($i); // 1が表示される。 $i=$i+1; print($i);//2が表示される」というプログラムで2が表示されます。これをコピーしていけば、1ずつ加算して画面に表示されます。これを何度もコピーするというのも効率が悪いので「何回繰り返す」という記述をしてプログラムを作ります。whileという繰り返しの構文は、「while(繰り返す条件){繰り返したい処理}という記述をする繰り返し構文です。

PHP思考の準備・賢いロボット作り

プログラムの醍醐味というのは、決められた動作をするだけではありません。ロボット自身が判断をして、どんな迷路でもゴールできるようにすることです。「前に進む」「右に回る」という命令だけでは賢いロボットというものはできません。「もし()なら」と書いた付箋と「()まで繰り返し」「ここまで」と書いた付箋紙を準備しましょう。これらは強力なロボットを作るための命令です。たとえば、スタートからゴールが一直線の100マスなら100枚の付箋紙があれば、ゴールすることはできます。このような何度も同じ動作を何度も組み合わせる場合は「繰り返し」ブロックを使うといいのです。例えば、5つのマスのブロックなら、「(4回)まで繰り返し」「前に進む」「ここまで」の3枚で付箋で足ります。この繰り返しブロックは回数以外の条件をかくこともできます。「(ゴールする)まで繰り返し」「前に進む」「ここまで」でいいのです。これならば、4マス迷路でも、3マスでも100マスでも対応できます。「繰り返し」「ここまで」というものの間には、いくつでもブロックを挟むことができます。「前に進む」「右に回る」というものを挟めば、折れ曲がった迷路でも、ゴールに辿り着きます。実際のプログラムにも繰り返しの仕組みがあります。これは重要な役割です。繰り返しブロックを使うと、何度も同じような動作を記述しなくてもいいことになり、効率よくプログラムを作ることができます。ただ、これだけでは決まりきった動きしかできません。さまざまな迷路に対応するには、「もしも」ブロックを使う必要が出てきます。もしもブロックには条件を記述。その条件に合う場合だけ行う動作を指定していきます。

プログラミングを行う際の流れ

プログラムとは人間がコンピューターに伝えたい事を解釈してくれる手段なのだそうです。さて、では、プログラミングはどのような流れで行われるものなのでしょうか?プログラミングを行う際にまず大切になってくるのがアルゴリズムだそうです。意味は問題の解法だそうです。アルゴリズムとは人間が解決させたいと思っている問題に対して、その問題をどのようにして解決するかというものなのだそうです。問題と聞くと何やらとても難しいものを指すように感じてしまうかもしれませんが、実際にはそんなことは無いようです。例えば、ブログなどのプログラムを書くとしましょう。「ブログの投稿に記事が追加された時はデータベースに保存を行いたい。」という問題が出てきたとします。この問題を実際にどのような手順で、どのように処理を行い問題になっていたものを達成するのかがアルゴリズムにあたるのだそうです。アルゴリズムを考えてから実際にプログラミングを書いていくそうです。この時プログラミングはプログラミング言語に定義されているプログラミング言語の文法で書いていくのです。そうして記入されたプログラムのことをソースコードと呼ぶそうです。コンピューターにプログラミングで「このような手順(アルゴリズム)でこうして欲しい」とソースコードを入力し実行すれば、伝えた手順通りに動いてくれるはずです。このソースコードは英語に近い文で出来ているため人間でも読みやすいそうです。さて、このソースコードをコンピューターが0と1で対処出来るようにするためにも、コンピューターにとって理解しやすい形にソースコードを変換しなければなりません。これはプログラミング言語の種類にもよるそうなのですが、CやJavaといった言語では、ソースコードを解釈する「コンパイラ」と呼ばれている機能があるためコンピューターが理解出来る形式の「オブジェクトコード」に変換を行っているそうです。この変換を行うことをコンパイルと呼ぶそうです。また、CやJavaなどコンパイラによって変換する作業である紺ばいるが必要となってくる言語の事をコンパイラ言語と呼ぶそうです。これとは反対にインタプリタ言語と呼ばれているものがあり、それはPHP言語などのプログラムを実行する際にコンパイルが行われるものだそうです。PHP実行エンジンがPHPを直接解釈するコンパイラの役割を果たしているそうです。

投稿の重複を防ぐ

投稿処理の最後に「header」ファンクションで再びindex.phpにジャンプさせるそうです。これは、重複投稿を防ぐ処理だそうです。この処理というのはあってもなくても表示される画面に変わりはないそうです。けれど、「再読み込み」ボタンをクリックするなどしてリロードしようとすると「本当にもう一度フォームを送信しますか」というようなエラーメッセージ的なものが出てきたり、さらに「送信」ボタンをクリックすると、投稿が重複して記録されてしまうそうです。これは、フォームを送信したりページをリロードすると、改めてフォームの内容が送信されるというWeb特性によるものだそうです。これを防ぐためには「header」ファンクションでジャンプさせて情報を削除するということをしているそうです。投稿された内容をみるためには、HTMLを作成するそうです。そこでフォームの下に、メッセージを配置したりするそうです。プログラムを組み込んで実際にメッセージを表示するようにするそうです。プログラム量はとても多くなるそうです。ただ、基本の応用ということで難しさはないそうです。メッセージは「posts」テーブルに格納されているそうです。メンバーの名前やアイコン画像というのは「members」に格納されているそうです。この2つのテーブルから情報を取り出す必要があるそうです。取り出したデータは「$posts」という変数に代入しておくそうです。これには分かりやすい名前をつけておくほうがいいそうです。続いて「mysql_fetch_assoc」ファンクションでレコードセットから1件のレコードを取り出すそうです。この配列にはメッセージなどのデータが含まれるそうです。

PHPファイルの拡張子はphp

一般に、ファイル名のうちピリオドで区切った後ろの部分が「拡張子」となっています。 PHPのプログラムを書いたファイルには、「php」の拡張子を付けます。 ファイル名は自由に付けられますが、半角の英字、数字、記号のみを使うのが 一般的です。 Webブラウザから要求したファイル名の拡張子が「php」であると、 Webサーバは「要求されたファイルはPHPのプログラム」であると判断し、 PHPの処理エンジンに処理を依頼します。