MYSQL在旧表中将旧列添加为行

时间:2013-01-25 03:44:26

标签: php mysql

我在数据库中有新表来跟踪标签,如下所示:

    TAG NAME | IMAGE ID 

    funny       570
    funny       571
    dog         649

我有旧表来跟踪标签,如下所示:

TAG ID | TAG NAME | IMAGES IDS

11       funny       570,571,572,573,574,575,576,577,578,579,580,581,58...
12       dog         649,650,651,652,653,654,655,656,657,658,659,660,66...
13       cat         844,845,846,847,848,849,850,851,852,853,854,855,85...

我需要将所有旧图像ID /相关标签添加到新表

2 个答案:

答案 0 :(得分:1)

如果我没错,你想把旧表记录添加到新表中。

所以你需要做的就是查询旧表并爆炸imgid并循环遍历爆炸字符串并将其添加到新表中。

示例代码。

<?php

    $query = mysqli_query("SELECT * FROM oldTable")or die(mysqli_error());
    while($row = mysql_fetch_assoc($query))
    {
        $ids = explode(",",$row['imageID']);

        foreach($ids as $newImgId)
        {
            $Insert_query = mysqli_query("INSERT INTO NEWTABLE ('tagname','img_id') VALUES ('".$row['tag']."','".$newImgId."')")or die(mysqli_error());
        }
    }

答案 1 :(得分:1)

你必须获取每一行并循环并插入如下所示。

  1. 从数据库中获取第一行。

  2. 使用explode将图片ID分解为数组。

  3. 循环遍历爆炸数组,并使用相应的标记名称插入它们。

    的foreach()

    {

    //这个循环用来处理记录

    //循环直到记录结束

    //在这里爆炸

    的foreach()

    {

    //循环并将爆炸的数组插入数据库

    }

    }