我希望更新stemp
列中的值,但所有值必须不同且在30到70之间随机。
for($i=0;$i<=30;$i++)
{
$temp= mt_rand(30,70);
mysqli_query($con,"UPDATE sensor SET stemp= $temp");
}
答案 0 :(得分:2)
您还可以使用MySQL的RAND()
功能:
mysqli_query($con, "UPDATE sensor SET stemp=ROUND(RAND() * 40) + 30");
将此放入循环中也没有意义,因为您似乎在更新语句中没有任何类型的WHERE条件,因此每次都会更新所有记录。
答案 1 :(得分:1)
我想你想改变一下你的逻辑:
首先使用range()
创建一个30 - 70的数组。然后shuffle()
数组并从中获取array_slice()
。有了这个,你有30个元素,你可以循环更新你的数据库条目。像这样:
<?php
$arr = range(30, 70);
shuffle($arr);
$update = array_slice($arr, 0, 30);
foreach($update as $v)
mysqli_query($con, "UPDATE sensor SET stemp = $v");
?>