2012-05-17 154 views
1

工作原理:點擊專輯將帶你到「album.php ID =#?」爲什麼我的內容不顯示?

//initialize some vars 
$albumID = ''; 

//check what photo we are looking for 
if(isset($_GET['id'])){ 
    $albumID = mysql_real_escape_string($_GET['id']); 

查詢:

$sql = mysql_query(
SELECT * 
FROM albums 
JOIN songs 
ON albums.performer=songs.performer 
WHERE albums.albumID='albumID' 
); 

我試圖完成是有它的顯示專輯和曲目列表。有誰知道我應該如何解決這個問題?謝謝。

+0

好吧,您沒有提到任何問題;) – Sebas

回答

2

開始放置您的查詢字符串中的:

$query = "SELECT * FROM albums JOIN songs ON albums.performer=songs.performer"; 

然後,如果一張專輯出現,添加到查詢:

if (!empty($albumID)) { 
    $query = $query . " WHERE albums.albumID = $albumID"; 
} 

在這一點上,我們可以繼續運行查詢:

$result = mysql_query($query) or die(mysql_error()); 

我們運行查詢,使用mysql_query,其結果傳遞到$result變量。如果出現任何問題,如我們的查詢錯誤,我們的程序將會出現die,最近的mysql_error()將被打印到屏幕上。

隨着我們$result變量,我們現在可以循環並打印結果:

while ($row = mysql_fetch_object($result)) { 
    echo $row->columnA 
} 

注意columnA是一個佔位符,你應該實際編寫列名(S)已存儲在數據庫中。

3
$sql = mysql_query(' 
SELECT * 
FROM albums 
JOIN songs 
ON albums.performer=songs.performer 
WHERE albums.albumID="'.$albumID.'"'); 
+0

您的查詢是以單引號開頭,並以雙引號結尾嗎? – Sampson

+0

@JonathanSampson哎呀,忘了它 – mgraph

2

你也應該知道,只是用isset()上傳遞的變量是不明確的,你應該檢查的特異性,總是知道什麼類型的值將被傳遞;

如果你希望只允許整數,數字或兩者的混合:

if(isset($_GET['id']))只檢查其設定,這也可能是一個空值。

if(!empty($_GET['id']))這將檢查其組,並且還具有一個值

if(!empty($_GET['id']) && is_numeric($_GET['id']))上述的所有和是數字。

故事的寓意是你不應該相信用戶輸入是正確的類型。

相關問題