Mysql php Update在while循环中不起作用

时间:2017-02-10 12:02:28

标签: php sql while-loop sql-update

我是编程新手,我遇到了Mysql Update代码的问题。我在' 100m'中有4个不同的行值。列和我试图使用While循环计算行的每个不同值的$ points1,然后另外计算,根据行值更新表。但是从第4行开始,只有第3行获得Total_score更新。

表:

enter image description here

表格结构:

enter image description here

代码:



<?php

include ("config.php");

$sql= "SELECT * FROM data_from_file";

$result= $db->query($sql);

if ($result->num_rows > 0) {

    while($row = $result->fetch_assoc()){
        $P=$row['100m'];
        $A=25.4347;
        $B=18;
        $C=1.81;
        $points1 = $A*(($B-$P)**$C);
        $insert =$db->query("UPDATE data_from_file SET Total_score=$points1 WHERE 100m=$P");
        echo $P;
        echo "<br>";
        echo $points1;
        echo "<br>";
        
    };

}


?>
&#13;
&#13;
&#13;

为什么只有第3个人正在更新?

3 个答案:

答案 0 :(得分:1)

您不应该使用以表格列上的数字开头的名称。

$insert =$db->query("UPDATE data_from_file SET Total_score=$points1 WHERE `100m`=$P");

答案 1 :(得分:0)

试试这个 对变量使用单引号

 $insert =$db->query("UPDATE `data_from_file` SET `Total_score`='$points1' WHERE `100m`='$P'");

答案 2 :(得分:-1)

使用WHERE 100m=$P是个坏主意,因为它会更新100m值等于$P的所有行。您应该使用WHERE id=$row['id'],这样您才能确保只更新一行。

你可以张贴表结构吗?我想知道列类型。