チャレンジ
宿題として、この問題を解決できるかどうかを確認してください。ページに表示されるすべてのジョークの後に「このジョークを削除」というハイパーリンクを配置します。このリンクをクリックすると、ジョークがページから削除されます。データベースと変更されたジョークのリストが表示されます。ここにいくつかのヒントがあります:
すべての機能を 1 つの多機能ページで完了できます。
第 2 章で学習した SQL DELETE コマンドを使用する必要があります。
これは重要な質問です。特定のデータベースを削除するには、それを一意に識別できる必要があります。 Jokes テーブルの ID によってこの機能を実現できます。削除するジョークの ID をジョーク削除リクエストに渡す必要があります。この値を「このジョークを削除」接続のクエリ文字列に入れるのが適切です。
すでに答えを持っていると感じる場合、または単に解決策を知りたい場合は、次のページを確認してください。幸運を!
結論
この章では、MySQL データベース サービスとのインターフェイスを実装するために使用されるいくつかの新しい PHP 関数を学びました。これらの機能を使用して、私たちはデータベース内のジョークをオンラインで公開し、訪問者が独自のジョークを追加できるようにする最初のデータベース主導型 Web サイトを構築しました。
第 5 章では、MySQL コマンド ラインに戻って、リレーショナル データベースの原理とその他のより高度な SQL クエリを使用して、より複雑な情報を記述し、訪問者が特別な権限を使用して独自のジョークを追加できるようにする方法を学びます。
課題の解決策
これは、上で提案した「宿題」の解決策です。各ジョークの後に「このジョークを削除」リンクを追加するには、次の変更を行う必要があります:
以前は、ページの下部にある「ジョークを追加!」リンクに This 変数を介して $addjoke 変数を渡していました。は、通常のジョークのリストを表示する代わりに、ジョークを入力するためのフォームを表示するようにスクリプトに指示します。同様に、「Delete
this Joke」接続で $deletejoke 変数を渡し、ジョークを削除したいことを示します。
各ジョークの JokeText 列を取得する際に、ID 列の値も取得するため、データベース内の各ジョークに関連付けられた ID を取得します。
削除するジョークの ID 値を $deletejoke 変数に割り当てます。これは、データベースから取得した ID 値を各ジョークの「このジョークを削除」接続に挿入することによって実現されます。
if ステートメントを使用して、このページが読み込まれるときに $deletejoke に (isset 関数を使用して) 値が割り当てられている場合、この値 (削除するジョークの ID) を SQLDELETE ステートメントで使用して、指定されたジョーク。
完全なソースコードは次のとおりです:
... // ユーザーがジョークを追加したい場合 if (isset($addjoke)): ?> else: // データベースサーバーに接続します $dbcnx = @mysql_connect( "localhost", "root" , "mypasswd"); if (!$dbcnx) { echo( " 現時点では " . exit(); } // ジョーク データベースを選択します if (! @mysql_select_db("jokes") ) { echo( " 現時点ではジョーク " . exit(); } // ジョークが送信されている場合、 // ジョークをデータベースに追加します。 if ("SUBMIT" == $submitjoke) { $sql = "INSERT INTO Jokes SET " . "JokeText='$joketext', " . "JokeDate=CURDATE()"; if (mysql_query($sql)) { echo(" あなたのジョークが追加されました。 ");} else { echo(" 送信されたジョークの追加エラー: " . } } // ジョークが削除された場合、 // データベースから削除します。 if (isset($deletejoke)) { $sql = "ジョークから削除 " . "WHERE ID=$deletejoke"; if (mysql_query($sql)) { echo (" ジョークは削除されました。 ");} else { echo(" ジョーク削除エラー: " . } } echo(" データベース内のすべてのジョーク " . // ID とテキストをリクエストしますすべてのジョーク $result = mysql_query( "SELECT ID, JokeText FROM Jokes"); if (!$result) { echo(" クエリ実行エラー: " . $joketext " . } // このリンクをクリックすると、このページが読み込まれます // ジョーク投稿フォームが表示されます. echo(" gt;" . endif; ? > |