2017-05-26 3 views
0

「product_id」を受け入れる関数を作成した後、すべてのJsonフィールドを循環してid 'product id'それをエンコードしてデータベースを更新する必要があります。MySQLでJSONフィールドを削除する[PHP] [CodeIgniter]

現在、 'product_id'を '154'で置き換えました。これは 'id'なので削除するテストです。

私が書いたこのforeach文は、すべてのID

$user = $this->session->userdata('user_id'); 

    $autoOrder = $this->db->get_where('auto_order', ['user_id' => $user])->row()->products; 

    $temp = json_decode($autoOrder); 


    foreach ($temp as $value) { 
     $last_value = (array)$value; 
     foreach ($last_value as $key=> $value) { 
     foreach($value as $key2=>$value2) { 
      if ($key2 == 'id' && $value2 != '154') { 
      echo "Product Id: " . $value2 . "<br>"; 
      $new_ids[] = $value2; 
      } 
     } 
    } 
    } 

どのようにすることができます私は今サイクルのすべてのautoOrderを通って、「new_ids」が唯一のものを取得し、私を取得しますか?

JSONがどのように見えるかの例:

[ 
    { 
     "order": { 
      "id": "154", 
      "qty": "1", 
      "option": "{\"color\":{\"title\":\"Color\",\"value\":null}}", 
      "price": "2433.62", 
      "name": "Race Car", 
      "shipping": "0", 
      "tax": "26", 
      "image": "http://localhost/products/image/34", 
      "coupon": "" 
     } 
    } 
] 
+0

db内のテーブル – Gilbert

+0

提供された製品IDを使用してJSONフィールドを削除します – Gilbert

+0

////////////はい – Gilbert

答えて

0

あなたはそれを理解することは少し複雑だ書いたこのコード。 とにかく、new_idsをデータベースに保存し、WHEREにnew_idsのないオブジェクトのみを取得する条件を指定してクエリを実行する必要があります。

+0

JSON – Gilbert

関連する問題