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 に答える