ForEach循环数据插入两个数据库表

时间:2016-02-22 10:28:56

标签: php mysql arrays for-loop foreach

$imagesarray[]=explode('&',$data[5]);
            $imag_temp  =   0;
            foreach($imagesarray as $image){
                if($imag_temp == 0 )
                {
                    $this->db->query("UPDATE " . DB_PREFIX . "product SET image = 'media/" . $image[0] . "' WHERE product_id = '" . (int)$product_id . "'");
                }else{
                    foreach($image as $img){
                            $this->db->query("INSERT INTO " . DB_PREFIX . "product_image SET image = 'media/" . $img . "' , product_id = '" . (int)$product_id . "'");
                    }
                }
                $imag_temp++;               

            }

This is my $data[5]=Arizona Diamondbacks.png&arizona-cardinals.png&Atlanta Braves.jpg&...&...&...n number can have..

我有每个第一个图像应该插入一个表的所有内容的writend查询,剩下的所有其他图像应该插入到另一个表中..现在每个循环第一个图像作为第一个/。

3 个答案:

答案 0 :(得分:0)

我不知道你想要什么,但你有一些基本的错误。在尝试编写代码之前,您应该了解有关php和sql的更多信息。

您的代码应该是这样的

$imagesarray = explode('&',$data[5]);
$imag_temp = 0;
foreach($imagesarray as $image){
    if($imag_temp == 0 )
    {
        $this->db->query("UPDATE " . DB_PREFIX . "product SET image = 'media/$image' WHERE product_id = '$product_id'");
    }else{
        foreach($image as $img){
                $this->db->query("INSERT INTO " . DB_PREFIX . "product_image (image, product_id) VALUES ('media/$image', '$product_id')");
        }
    }
    $imag_temp++;               

}

进行一些研究,以了解sql和php如何工作,并进行一些调试,因为您的代码可能有更多的错误

答案 1 :(得分:0)

你得到的错误是什么..你的插入查询不正确。 你需要注意的其他事情是你得到的阵列类型......

您可以根据需要进行编辑

此代码正常工作,您可以使用插入和更新查询进行修改..

<?php 
$data[5]='Arizona Diamondbacks.png&arizona-cardinals.png&Atlanta Braves.jpg';

$imagesarray[]=explode('&',$data[5]);

foreach ($imagesarray[0] as $key => $value) {
    if($key==0){
        echo "hello"; // here is your update query 
    }
    else{
        echo "sorry"; // here is your insert query 
    }

}

答案 2 :(得分:0)

如果是单品,您不需要$ imagesarray []。

 $data[5] = "Arizona Diamondbacks.png&arizona-cardinals.png&Atlanta Braves.jpg";
 $imagesarray = explode('&',$data[5]);

将创建一个类似

的数组
Array
(
    [0] => Arizona Diamondbacks.png
    [1] => arizona-cardinals.png
    [2] => Atlanta Braves.jpg
)

然后使用单个变量分配查询以执行

foreach($imagesarray as $key => $image){

    if($key == 0 )
    {
        $query = "UPDATE " . DB_PREFIX . "product SET image = 'media/" . $image . "' WHERE product_id = '" . (int)$product_id . "'";
    } else {
        $query = "INSERT INTO " . DB_PREFIX . "product_image SET image = 'media/" . $image . "' , product_id = '" . (int)$product_id . "'";
    }
    $this->db->query($query); 
}