使用for循环和数组php更新多行

时间:2014-02-05 09:17:57

标签: php mysql arrays for-loop

我有这段代码:

$id1=array($aa1,$aa2,$aa3,$aa4,$aa5,$aa6,$aa7);
$rank1=array($a1,$a4,$a7,$a10,$a13,$a16,$a19);
require_once("connection.php");
for($i=0;$i<7;$i++){    
   $sql = "update live_tracking set swim_rank = '"$rank1[$i]."' where id = '".$id1[$i]."'";
}

我想更新我的mysql数据库的多行,但是使用上面的代码只更新了第一个索引。有什么建议吗?

4 个答案:

答案 0 :(得分:1)

您只能使用以下命令执行一个查询:

$sql = "update live_tracking set swim_rank = '".$rank1[$i]."' WHERE id IN (";
for($i=0;$i<7;$i++){    
   $sql .= $id1[$i].",";
}

$sql .= ")";

$query = mysql_query($sql) or die("error : ".mysql_error());

if($query){
   echo "success";
} 

答案 1 :(得分:0)

在循环内执行查询。

    for($i=0;$i<7;$i++)
    {    
    mysql_query("update live_tracking set swim_rank = '".$rank1[$i]."' where id = '".$id1[$i]."'");
    }

答案 2 :(得分:0)

我可以在sql中看到错误

$sql = "update live_tracking set swim_rank = '"$rank1[$i]."' where id = '".$id1[$i]."'";

上面应该是

$sql = "update live_tracking set swim_rank = '".$rank1[$i]."' where id = '".$id1[$i]."'";

你错过了。在'“。$ rank1 [$ i]。”'

答案 3 :(得分:0)

您似乎正走在正确的轨道上。但是你需要在循环中执行查询。像这样:

$id1=array($aa1,$aa2,$aa3,$aa4,$aa5,$aa6,$aa7);
$rank1=array($a1,$a4,$a7,$a10,$a13,$a16,$a19);
require_once("connection.php");
for($i=0;$i<7;$i++){    
   $sql = "update live_tracking set swim_rank = '".$rank1[$i]."' where id = '".$id1[$i]."'";
   if(!mysql_query($sql)){
      echo "not updated".$id1[$i]; exit();  
   }


}