2016-02-12 52 views
1

我正在製作一個簡單的電影網站,我想在頁面中顯示相關的電影.. 我的數據庫包含美國和印度電影在電影表 我試圖找到一個問題當訪問者點擊任何美國電影時,相關電影將只出現在美國電影中(我的表格中有一列名爲「movie_lang」,將美國電影標爲號碼1,印度號碼標爲號碼2) 這是迄今爲止因爲我可以得到如何獲得具體記錄

$query=mysql_query("select * from movies order by id desc limit 4"); 
     while($m=mysql_fetch_assoc($query)){ 
    if($m['movie_lang']== '1'){ 
      echo '<a href="view_movie.php?id='.$m['id'].'"><img src="uploads/poster/'.$m['thumbnail'].'" title="'.$m['name'].'"></a>' ;} 
    else{ 

      echo '<div class="hidden"></div>"'; 
    } 

     } 

不確定我的代碼。對不起...新來這...

+0

爲什麼不使用「select * from movie where movie_lang = 1 order by desc limit 4」?此外,這段代碼是否會給你一個錯誤?如果是這樣,請張貼。 – Hiphop03199

+0

不能這樣做,因爲這將只顯示標記爲1(美國電影)的電影和代碼工作發現,不知道下一步該怎麼做,謝謝 –

回答

1

如果你想顯示只有美國電影,因爲訪客點擊它,你可以顯示所有美國電影使用您的查詢數據庫。

$query = mysql_query("select * from movies where movie_lang = 1 order by id desc limit 4"); 

如果你想在印度電影,只是在movie_lang參數更改爲2。此參數可以爲你的GET請求。

1

好吧,我想我理解這個問題,讓我知道如果我錯過了它:雖然你想列出所有類型的電影,但如果用戶點擊美國電影的鏈接,你只想告訴他只有美國在稍後的頁面上播放電影。這是我的想法:

// When a page loads, it checks if the 'selected_lang' variable is set. If so, it creates a language filter 
$previous_lang = isset($_GET['selected_lang'] && is_numeric($_GET['selected_lang'])) ? " where movie_lang = " . $_GET['selected_lang'] . " " : ""; 

// We assemble queries which will use a language filter if we have one, or all languages if not 
$query=mysql_query("select * from movies $previous_lang order by id desc limit 4"); 

while($m=mysql_fetch_assoc($query)){ 
    if($m['movie_lang']== '1'){ 
     // We include a 'selected_lang' variable in our link, so that page now nows the language of the movie the user picked 
     echo '<a href="view_movie.php?selected_lang=1&id='.$m['id'].'"><img src="uploads/poster/'.$m['thumbnail'].'" title="'.$m['name'].'"></a>' ; 
    } else { 
     echo '<div class="hidden"></div>"'; 
    } 
} 

此代碼查看是否設置了'selected_lang',如果是,則將其用於後續SQL查詢。您可能需要在不同的頁面上打點位,如果您想編寫自己的(明智的)where子句,可能需要重新排列。

讓我知道你是否需要更多的幫助。