我有一些问题需要从SELECT sql获取信息,然后将这种信息插入到我的数据库中。问题是现在我无法解决插入多行的问题。
我得到了这个,它只插入一个项目,如果一个类别有更多项目,那么一个项目也需要插入多少次
我现在将一行中的项目彼此相邻,但我想要彼此之间的那些
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));
}
答案 0 :(得分:0)
根据您获得的结果创建VALUES
字符串。您需要根据您的要求进行一点修改。但是,下面的示例将为您提供如何执行此操作的建议:
$items = '';
while($loco = $log->fetch_object()){
$items .= '('.$loco->itemname.',';
$items .= // Some other variables those you want to insert...
$items .= $loco->xyz.'),';
}
$new_data = rtrim($items, ',');
$clause = "INSERT INTO log_drops(`item`, mobname, game, log_id, log_name)
VALUES $new_data";
然后,您只需要执行一次插入查询。
答案 1 :(得分:0)
尝试这种风格,我总是习惯于从数组中获取我的价值并创建sql
<?php
$values = ''; // store values to be inserted
$n=','; // string to manage comma between chunk of values to be inserted
$numberOfValues=5; // values defind to be inserted
$count = 0;
$recordNum =mysqli_num_rows($log) - 1; //count number of records from 0
while($loco = $log->fetch_object()){
if($count == $recordNum){ $n = ' '; }
$values .= "('$loco->itemname','$loco->game','$loco->game','$loco->log_id','$loco->log_name') $n ";
$count++;
}
$clause = "INSERT INTO log_drops(`item`, mobname, game, log_id, log_name)
VALUES $values";
?>