MYSQL 将旧列添加为新表中的行


MYSQL Adding old column as rows in new table

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

    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/关联标签添加到新表中

如果我

没记错的话,您想将旧表记录添加到新表中。

因此,您需要做的就是查询旧表并分解 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. 从数据库中获取第一行。

  2. 使用爆炸将图像 ID 分解为数组。

  3. 遍历松散数组,并插入它们并带有相应的标记名称。

    foreach()

    {

    这个循环与照顾记录

    循环直到记录结束

    这里爆炸

    foreach()

    {

    循环访问并将分解数组插入数据库

    }

    }