簡體   English   中英

PHP-在while循環上插入SQL

[英]PHP - Insert SQL on while loop

我從一個表中生成了一個隨機的怪物團隊,並限制為6。現在,我還想將團隊插入到user_team中,其中包含字段m1,m2,m3,m4,m5,m6

它們代表怪物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
}
}

Insert語句為$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); $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);

只是不知道它在哪里/如何放置,因此它將正確的值插入正確的列。

如果是我,我會將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());

另外,在比較行結果時也不要忘記使用三等號,這樣您就不會被一個奇怪的錯誤所困擾,在該錯誤中,事情評估為false並不是真的錯誤(===是使用許多函數的方式可能會根據結果返回數組,整數或布爾值)。

這些值將按照提供的順序放置在列中。

這是我使用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']))));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM