一个查询插入多条记录


Insert multiple records one query

>我正在尝试解决一个问题,我已经有 2 天了。但无论如何都能取得任何成功

我想创建一些人们可以跟踪进度的东西,因此如果有人"创建进度",则需要从数据库中选择某些信息并将其插入到其他表中。

现在我得到了这个:

ID | ITEM       | MOBNAME | GAME | LOG_ID | LOG_NAME
1  | test test3 | spider  | TEST |    1   |  just a test

如您所见,我需要列 item 彼此之间,而不是在 1 行中。 像这样:

ID | ITEM   | MOBNAME | GAME | LOG_ID | LOG_NAME
1  | test   | spider  | TEST |    1   |  just a test
1  | test3  | spider  | TEST |    1   |  just a test
1  | test4  | spider  | TEST |    1   |  just a test

这是我当前用于选择和插入的代码:

$sql = "INSERT INTO log_create(`name`, name2, game, monster, info)VALUES('$name', '$name2', '$game', '$mobname', '$info')";
$log = $db->query("SELECT * FROM log_mitem WHERE mobname = '" .$mobname. "' AND game = '" .$game. "'") or die($db->error);
if($log1 = $log->fetch_object())
    {
while($loco = $log->fetch_object())
    {
$item .= "$loco->itemname";
    }
$logss = "INSERT INTO log_drops(`item`, mobname, game, log_id, log_name)VALUES('$item', '$mobname', '$game', '$id', '$name')";
if($result1 = $db->query($logss));
}

在下面找到两个例子。

$sql="INSERT INTO table1 (ITEM,MOBNAME,GAME,LOG_ID,LOG_NAME)SELECT ITEM,MOBNAME,GAME,LOG_ID,LOG_NAME FROM table2 WHERE mobname ='".$mobname."' AND game ='".$game ."'";
mysql_query($sql);  

如果你有相同的结构。

$sql="INSERT INTO table1(SELECT ITEM,MOBNAME,GAME,LOG_ID,LOG_NAME FROM table2 WHERE WHERE mobname ='".$mobname."' AND game ='".$game ."')";
mysql_query($sql);