mysql
1. While ループ
このレッスンでは、さらに深く掘り下げて、PHP と MySQL を使用して、いくつかのシンプルで便利なページを作成します。昨日作成したデータベースから始めて、データベース内のデータを表示しますが、少し磨きをかけます。
まず、次のコードを使用してデータベースの内容をクエリします。
名前 | 役職 | /tr>n";
%s %s | %s | n", $myrow[1], $myrow[2], $myrow[3]);
名前< td> | アドレス |
%s %s | %s tr>n", $myrow["first"], $myrow["last"], $myrow["address"]); } while ($myrow = mysql_fetch_array($result)); echo " < /table>n"; } else { echo "Sorry, no records found! "; } ?> このプログラムにはたくさんのものが含まれています新しいコンテンツですが、すべて非常にシンプルです。 1 つ目は mysql_fetch_array() 関数です。この関数は mysql_fetch_row() に非常に似ていますが、1 つの違いがあります。この関数を使用すると、$myrow["first"] などの配列添字の代わりにフィールド名を通じて返されるフィールドにアクセスできます。このようにして、多くの労力を節約できます。さらに、do/while ループと if-else 条件文がプログラムに追加されます。 if-else 条件文の意味は、レコードを $myrow 変数に割り当てることができた場合は続行し、それ以外の場合は else 部分にジャンプしてそこで命令を実行するということです。 do/while ループは、前のページで使用した while() ループのバリエーションです。 do/while を使用する必要がある理由は、元の if ステートメントで、クエリによって返された最初のレコードを変数 $myrow に割り当てているためです。この時点で一般的な while ループ (たとえば while ($myrow = mysql_fetch_row($result))) を実行すると、2 番目のレコードが $myrow に割り当てられ、最初のレコードはフラッシュされます。 while ループを使用すると、ループ条件を決定する前にループ本体を 1 回実行できるため、クエリ結果にレコードがない場合でも、プログラムが実行されます。 else{} 部分のプログラムの実行を確認したい場合は、SQL ステートメントを SELECT * FROMemployees WHERE id=6 に変更するか、クエリにレコードが存在しないように他の形式に変更します。 次に、ループ if-else コードを拡張してページのコンテンツを充実させましょう ループ ステートメントの使用方法を学習しました。より実践的な例で説明しますが、その前に、Web フォーム、クエリ パラメータ文字列、およびフォームの GET メソッドと POST メソッドの処理方法を理解しておく必要があります。これについては、少し前の記事「コンテンツ」で説明しました (詳しくない場合)。この部分は、その記事を読むことができます ここで、クエリ パラメータ文字列を扱う必要があります。ご存知のとおり、パラメータの内容をクエリ パラメータ文字列に書き込む方法は 3 つあります。1 つ目は GET メソッドを使用することです。 2 つ目は、ブラウザのアドレス バーに URL を入力するときにクエリ パラメータを直接追加する方法です。3 つ目は、Web ページのハイパーリンクにクエリ パラメータ文字列を埋め込み、リンクの内容を次のようにします。 . ここでは最後の方法を使用します 最初に、リストするデータベースを再度クエリします。次のプログラムを見てください。そのほとんどはすでに馴染みのあるものです。 , "mydb",$db); $result = mysql_query("SELECT * FROM members", $db); if ($myrow = mysql_fetch_array($result)) { do { printf("%s %s< br>n", $PATH_INFO, $myrow["id"], $myrow[" first"], $myrow["last"]); } while ($myrow = mysql_fetch_array($result)); } else { echo 「申し訳ありません、記録が見つかりません! "; } ?> |
では、すべての引用符の前にバックスラッシュがあります。このバックスラッシュは、次の文字をプログラム コードとして扱うのではなく、直接表示するように PHP に指示します。また、使用法にも注意してください。 $PATH_INFO 変数はプログラム内でアクセスでき、プログラム自体の名前とディレクトリの場所を保存するために使用されます。これは、$PATH_INFO を使用してプログラム自体を呼び出すことができるためです。プログラムが移動された場合でも、他のディレクトリや他のマシンに移動した場合でも、このプログラムが正しく呼び出されることを確認できます。プログラムによって生成された Web ページに含まれるハイパーリンクは、プログラム自体を再度呼び出すと、いくつかのクエリ パラメータが追加されます。PHP は、クエリ パラメータ文字列に「name = value」のような形式が含まれていることを確認すると、変数名を含む変数を自動的に生成します。この機能を使用すると、PHP$ を問い合わせるだけで、プログラムが初めて実行されたか 2 回目に実行されたかを判断できます。変数は存在しますか?
この質問に対する答えが分かれば、プログラムを 2 回目に呼び出すときにいくつかの異なる結果を表示できます。 ("localhost", "root");
mysql_select_db("mydb",$db);
// 個々のレコードを表示
// 単一レコードの内容を表示
if ($id) {
$ result = mysql_query( "SELECT * FROM 従業員 WHERE id=$id",$db);
$myrow = mysql_fetch_array($result);
printf("Name: %sn
", $myrow["first"] );
printf ("姓: %sn
", $myrow["last"]);
printf("住所: %sn
", $myrow["address"]);
printf(" 位置: % sn
", $myrow["position"]);
} else {
// 従業員リストを表示
// 従業員リストを表示します
$result = mysql_query("SELECT * FROMemployees",$db);
if ($myrow = mysql_fetch_array($result)) {
// 表示するレコードがある場合はリストを表示します
// if レコードがあれば一覧表示
do {
printf("%s %s
n", $PATH_INFO,
$myrow ["id"], $myrow["first"], $myrow["last"]);
} while ($myrow = mysql_fetch_array($result));
} else {
//表示するレコードがありません
/ / 表示するレコードがありません echo "Sorry, no records found!";複雑になるので、ここで説明します。何が起こっているのかを説明するためにコメントが追加されました。 // を使用して単一行のコメントを追加することも、/* と */ を使用して大きなコメントを囲むこともできます。
この時点で、私たちは最初の本当に役立つ PHP/MySQL スクリプトを学習しました。次に、Web フォームを追加してデータベースにデータを送信する方法を見ていきます。 >>
4. サーバーにデータを送信します
これで、データベースからデータを読み取るのはそれほど難しくなくなりました。しかし、順番にデータをデータベースに送信するにはどうすればよいでしょうか?実際、これは PHP の問題ではありません。
まず、簡単な表を含むWebページを作成します。