1

更新:在 $_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&amp;byline=0&amp;portrait=0&amp;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());
}

}

4

2 回答 2

0

您的表单看起来很奇怪:您正在使用 POST 模式来传递 GET 值(edit_portfolio_video.php?videoid=...等...)。但这不应该是问题。

在这一行:

$selected_video = get_selected_video_by_id($_GET['videocode']);

你确定你传递的 GET 参数是视频代码吗?还是videoid?

于 2012-09-17T19:01:43.710 回答
0

我认为您应该为您的 get_selected_video_by_id SQL 查询尝试这个。

$query = "SELECT * FROM portfolio_videos WHERE video_code = ".$video_code;

当然要注意参数中的 SQL 注入,而且,正如有人已经建议的那样,请考虑使用 PDO 或 MySQLi。

于 2012-09-17T18:44:49.177 回答