0

我想从数组更新查询。问题是当我运行代码时,数据库中的更新数据只是第一个数据..

例子..

该数组由整数类型 = [1,2]

当我运行代码时,数据库中的数据只运行了第一个数据(只有 1 个)..我该如何解决这个问题?

PHP 文件

$query_edit_paket = "select nama_menu from menu where id_menu = 149 ";
        $query_exec_edit_paket = mysql_query($query_edit_paket) or die(mysql_error());  
        $nama_menu_query = reset(mysql_fetch_assoc($query_exec_edit_paket));

     $_fbexclude = mysql_query("select id_paket from detail_paket where menu_paket = '$nama_menu_query' ");
    $fbexcludearray = array();
    while ($row = mysql_fetch_assoc($_fbexclude)) {
      $fbexcludearray[] = $row['id_paket'];
    }

    $excludes = implode(',', $fbexcludearray);
    echo $excludes;

    for($i=0;$i<count($excludes);$i++)  
    {           
        if($excludes != "")  
        {           
            $strSQL = "update paket set ketersediaan_paket ='kosong' ";  
            $strSQL .="WHERE id_paket = '$excludes' ";  
            $objQuery = mysql_query($strSQL);
        }
    } 

谢谢!!

4

2 回答 2

1

尝试使用IN

改变

$strSQL .="WHERE id_paket = '$excludes' ";  

$foo = '';
for($i=0; $i < count($fbexcludearray); $i++){
  $foo.= $i == 0? $fbexcludearray[$i]: ','.$fbexcludearray[$i];
}
    $strSQL .="WHERE id_paket IN ($foo) "; 
于 2013-02-11T02:55:56.440 回答
1

如果你要打印你的 $strSQL 你会看到你的查询是这样的

update paket set ketersediaan_paket ='kosong' WHERE id_paket = '1,2'

这不是您想要的查询。你想要的更像是这样的

update paket set ketersediaan_paket ='kosong' WHERE id_paket = '1' OR WHERE id_paket = '2'

所以你需要重组你的 for 循环或改变你的查询。

于 2013-02-11T02:58:42.610 回答