MYSQL,PHP更新表

MYSQL,PHP更新表,php,mysql,Php,Mysql,我上网浏览了两天,没有任何结果。 我尝试使用与前一个单元格相同的值更新MYSQL表中的空单元格: +-------+ +-------+ |ID |VAL| |ID |VAL| +-------+ +-------+ | 1 | 7 | | 1 | 7 | | 2 | | | 2 | 7 | | 3 | | | 3 | 7 | | 4 | 4 | | 4 | 4 | | 5 | 5 |after:| 5 | 5 | |

我上网浏览了两天,没有任何结果。 我尝试使用与前一个单元格相同的值更新MYSQL表中的空单元格:

+-------+      +-------+
|ID |VAL|      |ID |VAL|
+-------+      +-------+
| 1 | 7 |      | 1 | 7 |
| 2 |   |      | 2 | 7 |
| 3 |   |      | 3 | 7 |
| 4 | 4 |      | 4 | 4 |
| 5 | 5 |after:| 5 | 5 |
| 6 |   |      | 6 | 5 |
| 7 |   |      | 7 | 5 |
| 8 | 8 |      | 8 | 8 | 
| 9 | 3 |      | 9 | 3 |
|10 |   |      |10 | 3 |
+-------+      +-------+

这是我的解决方案,希望能对你有所帮助

$old_数据=[
[1,7],
[2,空],
[3,空],
[4,4],
[5,5],
[6,空],
[7,空]
]; // 以数组形式从表中获取旧数据:从表中选择*,其中1按id ASC排序;
//设置默认的预设值
$pre_val=0;
foreach($old_数据作为$old_数据){
如果(!$old_数据['VAL'])){
//更新表集VAL=$pre_VAL,其中id=$old_data['id']
}否则{
$pre_val=$old_data['val'];
}

}
谢谢你的回答,这终于成功了

UPDATE TABLE
SET VAL = (@n := COALESCE(VAL, @n))
ORDER BY ID

您可以获取前一行的val数据,并在插入下一行时使用它。或者,如果您的数据已插入到表中,则可以在过程中使用游标。您可以帮助我提供一些代码示例吗?参考此…可能会帮助您…您可以向我们展示您到目前为止所做的工作吗?