0

我从一个表中生成了一个随机怪物团队,并且限制为 6。现在,我还想将团队插入到包含字段 m1、m2、m3、m4、m5、m6 的 user_team

那些代表怪物 1 到怪物 6。现在当我尝试将生成的怪物插入团队时,似乎只有最后一个怪物插入其中,而我所有的怪物都插入。 http://prntscr.com/8zrj2

$sql = "SELECT * from monsterdata ORDER BY RAND() LIMIT 6"; 
$result = mysql_query($sql);
// this checks if you have a result
if ($result == null) echo "No result";
else {  
    while (($row = mysql_fetch_array($result)) != false) {
$row = mysql_fetch_array($result);
{
// html code here
}
}

插入语句是 $monster = $row['id']; $sql = "INSERT into user_team(m1,m2,m3,m4,m5,m6) VALUES('$monster','$monster','$monster','$monster','$monster','$monster')"; $result = mysql_query($sql);

只是不知道在哪里/如何放置它,所以它将正确的值插入到正确的列中。

4

2 回答 2

0

如果是我,我会将 id 推送到一个数组中,然后像这样使用它:

$monsterIds = array();
while(($row = mysql_fetch_array($result)) !== false) {
    $monsterIds[] = $row['id'];
}
mysql_query("INSERT INTO user_team (m1, m2, m3, m4, m5, m6) VALUES ('{$monsterIds[0]}', '{$monsterIds[2]}', '{$monsterIds[3]}', '{$monsterIds[4]}', '{$monsterIds[5]}')") or die(mysql_error());

另外,在比较行结果时不要忘记使用三等号,这样您就不会被一个奇怪的错误所困扰,即事情评估为假实际上并不是假的(=== 是使用许多函数的方法根据结果​​,它可能返回一个数组、整数或布尔值)。

这些值将按照提供的顺序放置在列中。

于 2012-05-08T04:50:33.240 回答
0

这是我使用 PDO(php 库)的示例:

$DBH = new PDO("mysql:host=$db_host;dbname=$db_name", $username, $password);
$webContractList=$DBH->query('SELECT id,nume,data FROM user2')->fetchAll();

$STH=$DBH->prepare("INSERT INTO user (id,nume,data) VALUES (:id ,:nume , :data)");

foreach ($webContractList as $item){           
    $STH->execute(array(':id'=>$item['id'],
                ':nume'=>$item['nume'],
                ':data'=>date('Y-m-d',strtotime($item['data']))));
}
于 2012-05-08T09:03:35.207 回答