更新:在 $_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>";
}
}
第二页:这是每个视频将由管理员编辑的页面。示例 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),并在第二页的 URL 中打印为字符串。我尝试以多种方式编写函数的查询,但我无法让它工作。
我会很感激这方面的帮助,谢谢大家。
注意:confirm_query 函数做这个简单的工作:
function confirm_query($result_set) {
if (!$result_set) {
die("Database query failed: " . mysql_error());
}
}