开发者

Update statement in MYSQL from PHP

I have a table as shown below

Update statement in MYSQL from PHP

The output from said table

Update statement in MYSQL from PHP

Green, is where a winner has been announced, whereas yellow means they have submitted a report, but a winner hasn't been decided yet. (winner field not populated)

        $roundBound = Array();
        $query = "SELECT MIN(id), MAX(id) FROM $tablename GROUP BY round";
        if($result = $Login->mysqli->query($query)) {
            while ($row = $result->fetch_row()) {
                $roundBound[] = $row[0];
                $roundB开发者_运维百科ound[] = $row[1];
            }
        }
        for($i = 0; $i < count($roundBound); $i = $i + 2) {
            $match = 0;
            for($j = $roundBound[$i]; $j < $roundBound[$i + 1]; $j = $j + 2) {
                $id1 = $j;
                $id2 = $j+1;
                $query = "SELECT t1.winner, t2.winner FROM $tablename as t1, $tablename as t2 WHERE t1.id=$id1 AND t2.id=$id2";
                $result = $Login->mysqli->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 = "UPDATE $tablename SET
                            username = '$win1',
                            username2 = '$win2'
                            WHERE id = $id";
                        $Login->mysqli->query($query);
                    } else {
                        //Tourneydonneee yeeee
                    }
                }
                $match++;
            }
        }

Does anyone have a improvement, or an all-around different idea? This will be running quite often and could be potentially running on large record sets, so optimization would also be welcome.


as far as i understand you problem, i can suggest you to try

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);
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜