更新: $_GET 変数のいくつかの付随する検証で、軽微な構文エラーが発生しているはずです。すべてを慎重に書き直したところ、スクリプトが機能するようになりました。皆さん、ありがとうございました!
コードの問題点を見つけるのに 5 時間以上費やしました。
最初のページ: データベース クエリは、データベースからいくつかの vimeo ビデオを取得し、ビデオの ID (vimeo の 8 桁の ID) を動的に取得する「編集」リンクを各ビデオに表示します。これを行うには、次の関数を呼び出すだけです。
function edit_portfolio_videos() {
global $connection;
$query = "SELECT * FROM portfolio_videos ORDER BY video_id ASC";
$portfolio_videos_set = mysql_query($query, $connection);
confirm_query($portfolio_videos_set);
while ($portfolio_video = mysql_fetch_array($portfolio_videos_set)) {
echo "<iframe src=\"http://player.vimeo.com/video/";
echo $portfolio_video['video_code'];
echo "?title=0&byline=0&portrait=0&color=ffffff\" width=\"400\" height=\"230\" frameborder=\"0\" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe><br />";
echo "<a href=\"edit_portfolio_video.php?videocode={$portfolio_video['video_code']}\">Edit this Video</a>";
}
}
2ページ目:管理者が各動画を編集するページです。URL の例は、「http://www.my_website.com/edit_portfolio_video.php?videocode=34956540」のようなものです。このページでは、次の関数を使用して、前のページのスクリプトから配列を取得します。
function get_selected_video_by_id($video_code) {
global $connection;
$query = "SELECT * FROM portfolio_videos ";
$query .= "WHERE video_code = '$video_code' ";
$query .= "LIMIT 1";
$videos_set = mysql_query($query, $connection);
confirm_query($videos_set);
if ($video = mysql_fetch_array($videos_set)) {
return $video;
} else { $video = NULL; }
}
その後...
$selected_video = get_selected_video_by_id($_GET['videocode']);
選択したビデオに関連するあらゆる種類のデータを編集フォームに入れるには:
<form action="edit_portfolio_video.php?videoid=<?php echo $selected_video['video_code']; ?>" method="post">
<input type="text" name="video_title" value="<?php echo $selected_video['video_title']; ?>" />
</p>
<p>Video Code (vimeo):<br />
<input type="text" name="video_code" value="<?php echo $selected_video['video_code']; ?>" />
</p>
<p>Video Description:<br/>
<textarea name="video_description" rows="5" cols="70"><?php echo $selected_video['video_description']; ?></textarea>
</p>
<p>
<input type="submit" name="submit" value="Save Video" />
</p>
</form>
しかし、取得しようとしている $video 変数 (get_selected_video_by_id 関数から返される) に問題があるように見えるため、フォームのフィールドには値が入力されません。ビデオ コードは、データベースに「INT」(長さ: 11) として格納され、2 ページ目の URL に文字列として出力されます。関数のクエリをさまざまな方法で記述しようとしましたが、機能させることができません。
これについて少し助けていただければ幸いです、ありがとうございました。
注: confirm_query 関数は、次の単純なジョブを実行します。
function confirm_query($result_set) {
if (!$result_set) {
die("Database query failed: " . mysql_error());
}
}