ホームページ >バックエンド開発 >PHPチュートリアル >PHP_MySQL チュートリアル - 2 日目 while ループとデータベース操作 ページ 1/2_PHP チュートリアル

PHP_MySQL チュートリアル - 2 日目 while ループとデータベース操作 ページ 1/2_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:56:09969ブラウズ

最初のページの while ループ
このレッスンでは、さらに深く掘り下げて、PHP と MySQL を使用していくつかのシンプルで便利なページを作成します。昨日作成したデータベースから始めて、データベース内のデータを表示しますが、少し磨きをかけます。
まず、次のコードを使用してデータベースの内容をクエリします。

コードをコピーします コードは次のとおりです:

$db = mysql_connect("localhost", "root"); "mydb", $db);
$result = mysql_query("SELECT * FROM 従業員",$db);
echo " ;/td> ;位置n";
while ($myrow = mysql_fetch_row($result)) {
printf("%s %s< ;/ td>%sn", $myrow[1], $myrow[2], $myrow[3]);
}
echo "?>




このプログラムにいくつかの新しい機能が追加されたことにお気付きかもしれません。最も明白なのは while() ループです。このループは、データベースに読み取り可能なレコードがまだある限り (mysql_fetch_row() 関数を使用)、そのレコードを変数 $myrow に割り当て、中括弧 ({}) 内の命令を実行することを意味します。ここをよく見てください、この部分はより重要です。
mysql_fetch_row() 関数に注意を払う必要があります。ここには少し問題があります。配列を返すのですが、配列内のフィールドには配列の添字でアクセスする必要があります。最初のフィールドには 0、2 番目のフィールドには 1 というインデックスが付けられます。これは、特定の複雑なクエリを実行するときに実行するには非常に面倒です。
次に、ループプロセスを詳しく見てみましょう。プログラムの最初の数行は、レッスン 1 の例ですでに見ました。次に、while() ループで、クエリ結果からレコードを読み取り、そのレコードを配列 $myrow に割り当てます。次に、printf関数を使ってデータの内容を画面に表示します。その後、ループが繰り返し実行され、次のレコードが読み取られて $myrow に割り当てられます。これは、すべてのレコードが読み取られるまで続きます。
while() ループを使用する利点の 1 つは、データベース クエリがレコードを返さなかった場合でも、エラー メッセージを受け取らないことです。ループ ステートメントが最初に実行されるとき、ループ条件は満たされず、データは $myrow に割り当てられず、プログラムは直接実行されます。
しかし、クエリがデータを返さない場合、ユーザーにそれをどのように知らせるのでしょうか?おそらく、ユーザーに関連する情報を提供する必要があるでしょう。それは可能です。その方法を見てみましょう。 >>

2ページ目 if-else
以下のプログラムをご覧ください。


コードをコピーします

コードは次のとおりです:
$db = mysql_connect("localhost", "root"); "mydb", $db);
$result = mysql_query("SELECT * FROM 従業員",$db);
if ($myrow = mysql_fetch_array($result)) {
echo "n" ;
echo " gt;n"
do {
printf("n", $myrow["first"],
$myrow["last"], $myrow["address"]);
} while ( $myrow = mysql_fetch_array($result));
echo "
名前 アドレス
% s % s%s
n";
echo "申し訳ありません、レコードが見つかりません!"


このプログラムには多くの新しいコンテンツが含まれていますが、これらのコンテンツは非常にシンプルです。 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 コードを拡張してページのコンテンツを充実させましょう

最初のプログラム スクリプトの 3 ページ目
ループ ステートメントを学習しました。より実践的なものにしてみましょう。その前に、Web テーブル、クエリ パラメータ文字列、フォームの GET メソッドと POST メソッドを処理する方法を知っておく必要があります。この部分に詳しくない場合は、その記事を読んでください。ご存知のとおり、パラメータの内容を記述するには 3 つの方法があります。 1 つ目はテーブル内にクエリ パラメータを追加する方法で、2 つ目はブラウザのアドレス バーにクエリ パラメータ文字列を埋め込む方法です。 Web ページのハイパーリンクを作成し、ハイパーリンクの内容が次のようになります: ここでは最後の方法を使用します。まず、データベースにクエリを実行して、従業員の名前をリストしてみます。ほとんどのプログラムはすでにおなじみです



コードをコピーします
コードは次のとおりです: $db = mysql_connect.("localhost", "root");
$result = mysql_query("SELECT * FROM 従業員",$db);
if ($myrow = mysql_fetch_array($result)) {
do {
printf("
%s %s
n" ,
$PATH_INFO, $myrow["id"] , $myrow["first"], $myrow["last"]);
} while ($myrow = mysql_fetch_array($result)); else {
echo 「申し訳ありませんが、記録が見つかりませんでした! ";
}
?>





ここでは特別なことは何もありません。printf 関数が少し異なるだけです。それでは、詳しく見てみましょう。
最初に注意すべきことは、すべての引用符の前にバックスラッシュが付いていることです。このバックスラッシュは、次の文字をプログラム コードとして扱うのではなく、直接表示するように PHP に指示します。変数 $PATH_INFO の使用法にも注意してください。この変数はすべてのプログラムでアクセスでき、プログラム自体の名前とディレクトリの場所を保存するために使用されます。これを使用する理由は、ページ内でプログラム自体を呼び出す必要があるためです。 $PATH_INFO を使用すると、プログラムが他のディレクトリや他のマシンに移動された場合でも、プログラムが正しく呼び出されることを保証できます。
先ほど述べたように、プログラムによって生成された Web ページに含まれるハイパーリンクは、プログラム自体を再度呼び出します。ただし、再度呼び出すと、いくつかのクエリ パラメータが追加されます。
PHP は、クエリパラメータ文字列に「name=value」などのペア形式が含まれていることを確認すると、特別な処理を実行します。クエリ パラメーター文字列で指定されたものと同じ名前と値を持つ変数が自動的に生成されます。この関数を使用すると、プログラムがプログラム内で最初に実行されるか 2 回目に実行されるかを判断できます。私たちがしなければならないのは、$id 変数が存在するかどうかを PHP に問い合わせることだけです。
この質問に対する答えがわかったら、プログラムを 2 回目に呼び出すときに、いくつかの異なる結果を表示できます。参照してください:
コードをコピーします コードは次のとおりです:


$db = mysql_connect("localhost", "root");
mysql_select_ db(" mydb",$db);
//個々のレコードを表示
// 単一レコードの内容を表示
if ($id) {
$result = mysql_query("SELECT * FROM 従業員 WHERE id=$ id",$db);
$myrow = mysql_fetch_array($result);
printf("名: %sn
", $myrow["first"]);
printf("姓: %sn< br>", $myrow["last" ]);
printf("アドレス: %sn
", $myrow["アドレス"]);
printf("位置: %sn
", $myrow ["位置"]);
} else {
// 従業員リストを表示
// 従業員リストを表示
$result = mysql_query("SELECT * FROM 従業員",$db)
if ($myrow = mysql_fetch_array($result) )) {
// 表示するレコードがある場合はリストを表示します
// レコードがある場合はリストを表示します
do {
proprintf ("& lt; a href ="%s? ID =%s "& gt; %s%s & lt;/a & lt; nR & gt; n ", $ PATH_INFO,
$ MyRow [" ID "], $ MyRow [" Last "]; // いいえ表示するレコード
// 表示するレコードがありません
エコー「申し訳ありません、レコードがありません! ";}}
}
? & Gt;
& lt;/body & gt;
& lt;/html & gt; // を使用して単一行のコメントを追加するか、/* と */ を使用して大きなコメントを囲みます
この時点で、最初の非常に便利な PHP/MySQL スクリプトを学習しました。次に、その使用方法を見ていきます。

ページ 4: データをデータベースに送信します。サーバー
データベースからデータを読み取ることは問題ありませんが、実際には、これは PHP ではありません。
単純なテーブルを含む Web ページを作成します。

コードをコピーします

コードは次のとおりです:




Name:
姓:
住所:




http://www.bkjia.com/PHPjc/318118.html
www.bkjia.com

tru​​ehttp://www.bkjia.com/PHPjc/318118.html技術記事最初のページの while ループ このレッスンでは、さらに深く掘り下げて、PHP と MySQL を使用して、いくつかのシンプルで便利なページを作成します。昨日作成したデータベースから始めて、ライブラリを表示してみましょう...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。