PHP中MYSQL中的Update语句

PHP中MYSQL中的Update语句,php,mysql,optimization,Php,Mysql,Optimization,我有一张如下所示的表格 所述表的输出 绿色是宣布获胜者的地方,而黄色表示他们已经提交了报告,但获胜者尚未确定。(未填充赢家字段) $roundBound=Array(); $query=“从$tablename GROUP逐轮选择最小(id)、最大(id)”; 如果($result=$Login->mysqli->query($query)){ 而($row=$result->fetch_row()){ $roundBound[]=$row[0]; $roundBound[]=$row[1];

我有一张如下所示的表格

所述表的输出 绿色是宣布获胜者的地方,而黄色表示他们已经提交了报告,但获胜者尚未确定。(未填充赢家字段)

$roundBound=Array();
$query=“从$tablename GROUP逐轮选择最小(id)、最大(id)”;
如果($result=$Login->mysqli->query($query)){
而($row=$result->fetch_row()){
$roundBound[]=$row[0];
$roundBound[]=$row[1];
}
}
对于($i=0;$imysqli->query($query);
$row=$result->fetch_row();
$win1=$row[0];
$win2=$row[1];
if(isset($win1)和isset($win2)){
if(isset($roundBound[$i+2])){
$id=$roundBound[$i+2]+$match;
$query=“更新$tablename集合
用户名=“$win1”,
username2='$win2'
其中id=$id”;
$Login->mysqli->query($query);
}否则{
//Tourneydonneee Yeee
}
}
$match++;
}
}

是否有人有改进,或者有全面不同的想法?这将经常运行,并且可能在大型记录集上运行,因此也欢迎进行优化。

据我所知,您的问题,我建议您尝试一下

for ($i = 0; $i < count($arr); $i = $i + 2) {
    $win1 = mysql_query("SELECT winner FROM tableName WHERE id=".(int)$i);
    $win2 = mysql_query("SELECT winner FROM tableName WHERE id=".(int)$i+1);
    $qry = "INSERT INTO tableName SET 
                          username = $win1,
                          username2 =$win2,
                          ....";
    mysql_query($qry);
}
for($i=0;$i
如何在同一行中插入两个用户名??一个字段称为用户名,另一个字段称为用户名2。这一部分已经完成了,我现在要做的是将现场获胜者从两行移动到下一轮的用户名字段中。wat about
wasd
;他也是第一轮的赢家。《报告2》专栏的重要性是什么?@diEcho几乎是一个用户报告他们的胜利或失败。如果另一个对手在5分钟之前没有报告赢或输,那么不管最后一个报告的用途是什么,都假定另一个对手是赢家。wasd还不会进入第二轮,因为他的潜在对手herpderp69或wzee没有宣布获胜者。这偏离了主题,但可能有用,如果两个用户都报告获胜,比赛将被锁定,并等待管理员审核以解决争议。我只是想对我的问题找到一个更全面的答案,好的,这些查询将单独工作,它不会试图回答任何优化问题。现在我将对此进行投票,我可以看到我自己接受它。如果有人能提供优化的答案,我将不胜感激。
for ($i = 0; $i < count($arr); $i = $i + 2) {
    $win1 = mysql_query("SELECT winner FROM tableName WHERE id=".(int)$i);
    $win2 = mysql_query("SELECT winner FROM tableName WHERE id=".(int)$i+1);
    $qry = "INSERT INTO tableName SET 
                          username = $win1,
                          username2 =$win2,
                          ....";
    mysql_query($qry);
}