gpt4 book ai didi

php - 显示以逗号分隔的数据库条目

转载 作者:搜寻专家 更新时间:2023-10-30 22:17:39 24 4
gpt4 key购买 nike

我在后端有一个字段,我在其中输入用逗号分隔的 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/>";
}

关于php - 显示以逗号分隔的数据库条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9344576/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com