我是编程新手,我遇到了Mysql Update代码的问题。我在' 100m'中有4个不同的行值。列和我试图使用While循环计算行的每个不同值的$ points1,然后另外计算,根据行值更新表。但是从第4行开始,只有第3行获得Total_score更新。
表:
表格结构:
代码:
<?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;
为什么只有第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']
,这样您才能确保只更新一行。
你可以张贴表结构吗?我想知道列类型。