更新:在$ _GET變量的某些伴隨驗證中必須存在小的語法錯誤。我仔細地重寫了一切,腳本現在可以工作。謝謝你們!php&mysql查詢 - 無法返回我需要從MySQL中獲得的變量
我花了超過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());
}
}
您確認$視頻不爲空嗎? (你確定get_selected_video_by_id實際上會返回一個視頻嗎?) –
我剛剛添加了confirm_query()函數定義。 – Mario
請不要使用'mysql_ *'函數來編寫新的代碼。他們不再維護,社區已經開始[棄用程序](http://goo.gl/KJveJ)。請參閱* [紅盒子](http://goo.gl/GPmFd)*?相反,您應該瞭解[準備好的語句](http://goo.gl/vn8zQ)並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能決定哪些,[這篇文章](http://goo.gl/3gqF9)會幫助你。如果你選擇PDO,[這裏是很好的教程](http://goo.gl/vFWnC)。 –