1
我在後端有一個字段,在這裏我輸入由逗號分隔的ID - ID1,ID2,ID3 ....這些都是視頻。所有ID都存儲在數據庫的product_videos字段中(因爲它們是鍵入的)。顯示用逗號分隔的數據庫條目
如何在前端回顯這些ID以便它們全都顯示該產品?
我在後端有一個字段,在這裏我輸入由逗號分隔的ID - ID1,ID2,ID3 ....這些都是視頻。所有ID都存儲在數據庫的product_videos字段中(因爲它們是鍵入的)。顯示用逗號分隔的數據庫條目
如何在前端回顯這些ID以便它們全都顯示該產品?
在一個數據字段中存儲逗號分隔的數據是一個壞主意。這是一個真正的痛苦操縱,所以你應該考慮修改你的數據庫結構。
你還沒有顯示你的數據結構,所以我將給出一個基本的例子,然後解釋如何改進它。我的例子假定product_videos
被鏈接到特定的用戶:
table: `users`
| user_id | user_name | product_videos |
|---------|-----------|----------------|
| 1 | User1 | 1,2,3,4,6,7 |
| 2 | User2 | 5 |
您將可能運行一個查詢
SELECT `product_videos` FROM `users` WHERE `user_name` = 'User1'
這會給你一個排,用逗號分隔值 - 那麼你就需要使用一些像PHP的explode()
將其轉換爲數組,然後遍歷該數組。這是一種非常糟糕的方法(當你嘗試做更高級的事情時,它只會變得更難)。
相反,使用鏈接表會更容易。想象:
table: `users`
| user_id | user_name |
|---------|-----------|
| 1 | User1 |
| 2 | User2 |
table: `videos`
| video_id | user_id |
|-----------|---------|
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 1 |
| 5 | 2 |
| 6 | 1 |
| 7 | 1 |
在這個例子中,每個視頻處於分貝表中的單獨行(以及每個視頻被鏈接到現有的用戶)。每行很容易被獨立處理。這使得處理每個視頻的額外數據非常容易,例如標題,運行時長度,上傳日期等。
然後,您需要運行JOIN查詢。例如
SELECT `videos`.`video_id` FROM `videos`
INNER JOIN `users` ON `users`.`user_id` = `videos`.`user_id`
WHERE `users`.`user_name` = 'User1'
在PHP中,你會做這樣的事情:
$q = mysql_query("SELECT `videos`.`video_id` FROM `videos` INNER JOIN `users` ON `users`.`user_id` = `videos`.`user_id` WHERE `users`.`user_name` = 'User1'");
while ($row = mysql_fetch_assoc($q)) {
echo "VIDEO ID = " . $row["video_id"] . "<br/>";
}
謝謝。我會嘗試。 – 2012-02-20 00:47:42