使用for循环更新多行的mysql用例

使用for循环更新多行的mysql用例,mysql,loops,case,Mysql,Loops,Case,我需要更新360行。显然,这不能正常工作。需要帮忙吗 for ($i = 1; $i <= 360; $i++) { $info = mysql_real_escape_string($_POST[$i]); $check = mysql_real_escape_string($_POST[''.$i.'Check']); $case = "WHEN '$i' THEN '$info'"; } $sql = "UPDATE $table

我需要更新360行。显然,这不能正常工作。需要帮忙吗

for ($i = 1; $i <= 360; $i++) {

  $info  = mysql_real_escape_string($_POST[$i]);
  $check = mysql_real_escape_string($_POST[''.$i.'Check']);

      $case = "WHEN '$i' THEN '$info'";
}

  $sql = "UPDATE $table
            SET info = CASE id
              $case
            END
           WHERE ID in (1-360)";

  mysql_query($sql)
      or die (mysql_error());
对于($i=1;$i这至少有一个(不是很?)明显的原因不起作用-您正在用循环的每次迭代替换$case的内容。
$case.=“当“$i”时,然后“$info”\n”;
(注意等号前的点)另一个可能是$i被放在查询中的单引号中,而ID列往往是数字

我没有尝试运行你的代码。如果它仍然“不起作用”,你应该编辑你的问题并添加更多信息,如表结构和错误消息

除此之外,您还可以:

$sql = "UPDATE $table  SET\n";
for ($i = 1; $i <= 360; $i++) {

  $info  = mysql_real_escape_string($_POST[$i]);
  //$check = mysql_real_escape_string($_POST[''.$i.'Check']);
  // What's that $check for?

  $sql .= "info = '$info' where ID = $i\n";
}

mysql_query($sql)
  or die (mysql_error());
$sql=“更新$table SET\n”;
对于($i=1;$i 1),“不工作”不是解释2。给出简单的sql查询,而不使用php。