2015-04-08 104 views
2

我對PHP/Mysql很新,但我試圖製作電影數據庫。 有一種形式,人們可以放入有關電影的信息,而發送按鈕將其存儲在我的數據庫中。然後另一個網頁顯示電影列表。從PHP數組中製作HTML列表?

文本輸入和下拉選擇很容易。我真正掙扎的是多重複選框部分。經過數小時的苦苦掙扎後,我終於瞭解了php數組,以及如何使用implode存儲我複選框中的所有值。我的代碼如下所示:

$genre = implode(';' , $_POST['genre']); 

這將所有選定的流派保存在數據庫中,

不過,我需要幫助,我的html頁面上顯示該數據的方式,我想: 首先,我想,而不是來檢索一個HTML列表的結果,; B; C 其次,我想將a; b; c等改爲實際的單詞 - 例如恐怖,動作,喜劇。這可以做到嗎?

希望有人能幫助!謝謝!

編輯: 一位朋友告訴我,處理多個複選框值的最佳方式是將它們存儲在不同的表(moviegenres)中並使用映射。所以我重新排列了我的數據庫,如下所示: 一個名爲'movies'的表有'movieID'和'title'列,還有一個名爲'moviegenres'的表有'movieID'和'moviegenre'列。

我仍能保存標題分成「標題」的「電影」,但是當我要添加體裁的「moviegenres」表中添加一個命令,沒有什麼工作......

什麼是最簡單的如何做到這一點? 我是否需要將不同的命令插入到兩個表中,或者是否可以使用一個變量在一個命令中執行所有操作?

+1

這可以做到。我可以幫助你,但是你能否首先發布顯示信息的html頁面的代碼? – Bill

回答

0

你可以拿數據說 $ genre ='a:b:c'; 並使用 $ genreArr = explode(';',$ genre); 將其作爲數組來獲取。在那裏你可以得到像 $ genreArr [0] ='a'的值; $ genreArr [1] ='b';

然後在PHP頁面,使用此代碼:

echo '<ul>'; 
foreach($genreArr as $g) 
{ 
    echo '<li>'. $g.'</li>'; 
} 
echo '</ul>'; 
+0

我編輯了我的原始問題,請評論我應該使用哪種方法?感謝您的快速回復! –

0

是的,你可以使用爆炸()函數來獲取數據庫複選框值的數組像你從dB的獲取; B; C

$values = explode(';', $dbcheckboxes); 

在這之後只顯示在html中。如果你想顯示實際的話則使實際的話一個陣列像

$actual_words = array(a => 'Horror', b => 'Action', c => 'Comedy'); 

就在上述數據庫中的值與實際的話數組鍵比較,你會得到它。

0
$genre = implode(';' , $_POST['genre']); 
$array_values = explode(';', $genre); 
foreach ($array_values as $values) { 
echo $values.'<br>'; 
} 
0

您可以使數據爆炸並循環它以在html中打印這些值。

$checkbox_values=explode(";","a;b;c"); 

$map=array("a"=>"Apple","b"=>"banana","c"=>"carrot"); 

foreach($checkbox_values as $value) 
{ 
    echo "<p>"+$map[$value]+"</p>"; 
} 

這將是您的問題的解決方案。但是由於創建地圖變量不會是動態的,因此最好將顯示字符串存儲到數據庫中,例如「apple; banana; carrot」。