1

次のように、タグを追跡するためにデータベースに新しいテーブルがあります。

    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/関連付けられたタグを新しいテーブルに追加する必要があります

4

2 に答える 2

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());
        }
    }
于 2013-01-25T03:57:18.377 に答える
1

各行をフェッチし、以下のようにループして挿入する必要があります。

  1. データベースから最初の行を取得します。

  2. 画像 ID を配列に分解するには、explode を使用します。

  3. 展開された配列をループし、それぞれのタグ名で挿入します。

    foreach()

    {

    //このループは、レコードを処理します

    //レコードが終わるまでループ

    //ここで爆発

    foreach()

    {

    // ループして、展開された配列をデータベースに挿入します

    }

    }

于 2013-01-25T03:57:34.233 に答える