将具有动态数量值的数组插入数据库

时间:2015-03-15 11:14:52

标签: php mysql arrays

我正在尝试将一组图像信息插入到我的数据库中。该阵列由大量图像信息组成,最初我只是允许将数组中的3个图像输入数据库。 图像细节进入一个名为print的表格,三个图像网址中的每一个都有自己的列,以及每个图像的标题,图像的拍摄日期及其位置。所有这些信息都与用户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表中纯粹将图像信息放在具有print_job列的单独行中,以将print_job链接到用户print_info行。这是这个小问题的最好方法吗?

1 个答案:

答案 0 :(得分:1)

这个怎么样:

$numOfImages = 4; //the number you want
for ($i=0; $i < $numOfImages; $i++) {
    $image = $feed[$i]['images']['standard_resolution']['url'];
    $image_caption = htmlspecialchars($feed[$i]['caption']['text'], ENT_QUOTES);
    $image_date = $feed[$i]['created_time'];
    $image_location = $feed[$i]['location']['name'];

    //...operation with $image
}