【发布时间】:2015-03-15 11:14:51
【问题描述】:
我正在尝试将一组图像信息插入到我的数据库中。该数组包含大量图像信息,最初我只允许将数组中的 3 张图像输入数据库。 图像详细信息进入一个名为 print 的表格,三个图像 URL 中的每一个都有自己的列,每个图像都有一个标题,图像的拍摄日期和位置。所有这些信息都与用户 ID 放在一行中。
// Assign images and data to appropriate variables
$image_one = $feed['0']['images']['standard_resolution']['url'];
$image_one_caption = htmlspecialchars($feed['0']['caption']['text'], ENT_QUOTES);
$image_one_date = $feed['0']['created_time'];
$image_one_location = $feed['0']['location']['name'];
$image_two = $feed['1']['images']['standard_resolution']['url'];
$image_two_caption = htmlspecialchars($feed['1']['caption']['text'], ENT_QUOTES);
$image_two_date = $feed['1']['created_time'];
$image_two_location = $feed['1']['location']['name'];
$image_three = $feed['2']['images']['standard_resolution']['url'];
$image_three_caption = htmlspecialchars($feed['2']['caption']['text'], ENT_QUOTES);
$image_three_date = $feed['2']['created_time'];
$image_three_location = $feed['2']['location']['name'];
但是,我现在想这样做,以便输入到表格中的打印数量最多可以从 3 到 10 不等。我想知道最好的方法来做到这一点。 我可以按照上面显示的方式简单地将数组值分配给更多变量,但是这很笨重,而且我觉得不必要地重复。
我正在考虑一个 foreach 循环,但是我不确定如何将每个图像和每个图像伴随数据插入到用户打印行的正确列中。
另一种选择是创建一个单独的 print_info 表并存储用户 ID 和 print_job 编号,然后在打印表中纯粹将图像信息放在单独的行中,并使用 print_job 列将 print_job 链接到用户 print_info 行。这是解决这个小问题的最佳方法吗?
【问题讨论】:
-
在您有超过 1 项重复性工作要做的情况下,请始终使用循环。只有当不同的用户可以拥有相同的图片时,才需要将 image_info 表与用户分开。这称为规范化,更多信息在这里:stackoverflow.com/questions/1258743/normalization-in-mysql