用PHP更新用户MySQL数据库

用PHP更新用户MySQL数据库,php,mysql,cron,Php,Mysql,Cron,我正在设置一个cron作业,每小时执行一次。我需要下面的脚本根据字段ID从数据库中的每个用户提取一个值 字段18是一个下拉列表,其值范围为0-10。在下面的PHP中,我想根据字段18的值更新$val。然后将$val传递给数据库中每个用户的字段45 一切正常。但是,插入到每个用户的值仅基于最后一个用户的信息。数据库中的最后一个用户将字段18设置为4,因此2920被发送到每个用户的字段45。我做错了什么 另外…我意识到这对于潜在的SQL注入等来说并不好。我只是想在进行这项工作之前设置好功能 <

我正在设置一个cron作业,每小时执行一次。我需要下面的脚本根据字段ID从数据库中的每个用户提取一个值

字段18是一个下拉列表,其值范围为0-10。在下面的PHP中,我想根据字段18的值更新$val。然后将$val传递给数据库中每个用户的字段45

一切正常。但是,插入到每个用户的值仅基于最后一个用户的信息。数据库中的最后一个用户将字段18设置为4,因此2920被发送到每个用户的字段45。我做错了什么

另外…我意识到这对于潜在的SQL注入等来说并不好。我只是想在进行这项工作之前设置好功能

<?php
// Create connection
 $con=mysqli_connect("host","username","password","database");

// Check connection
 if (mysqli_connect_errno($con))
   {
   echo "Failed to connect to MySQL: " . mysqli_connect_error();
   }

  $getvalue = mysqli_query($con,"SELECT value FROM mydatabase WHERE thefieldid=18");

  while ($row = mysqli_fetch_array($getvalue)) {

  foreach($row as $rows) {


   $num = $rows['value'];

   if ($num == 0) { 
   $val = '660'; }

   if ($num == 1) { 
   $val = '990';  }

   if ($num == 2) { 
   $val = '1590'; }

   if ($num == 3) { 
   $val = '1955'; }

   if ($num == 4) { 
   $val = '2920'; }

   if ($num == 5) { 
   $val = '3885'; }

   if ($num == 6) { 
   $val = '4850';  }

   if ($num == 7) { 
   $val = '5400';  }

   if ($num == 8) { 
   $val = '3885';  }

   if ($num == 9) { 
   $val = '5400'; }

   if ($num == 10) { 
   $val = '7200';  }

   echo $num;
   mysqli_query($con, "UPDATE mydatabase SET value = $val WHERE thefieldid = 45");

}   
}

 ?> 

是否需要筛选更新以针对循环当前行中的特定用户

e.g $getvalue = mysqli_query($con,"SELECT value, userid FROM 
mydatabase WHERE thefieldid=18");


提示,一个数组$foo'0'=>660','1'=>990。。而不是if块,它应该是if\elseagreed。但这仍然不能解决我的问题,即每个用户都会收到数据库中最后一个用户的变量。我猜这是我的while/foreach结构的一个问题?真的。下面是一个使用正确命名的示例$行=数组;而$result=mysqli\u fetch\u assoc$getvalue{`$rows[]=$result;`},然后foreach$rows作为$row。。。
mysqli_query($con, "UPDATE mydatabase SET value = $val 
WHERE thefieldid = 45 AND userid= $row['userid']");