2016-06-28 5 views
0

質問が正しく尋ねられるかどうかは分かりませんが、ここではわかりません。私は多分持っている60以上の変数例:$id = 3;ため複数の行を更新して、1つのクエリで同じidを持つ(ラベール)

私のテーブルの構造は、このようなもので、私は一度に複数の行を更新したい

$id = $_POST['id']; 
$job_type_buyer = $_POST['job_type_buyer']; 
$job_type_partner = $_POST['job_type_partner']; 
$job_type_locum = $_POST['job_type_locum']; 
// etc... 

、:現時点では

meta_id id meta_key   meta_value 
1   3  job_type_buyer 1 
2   3  job_type_partner 0 
// etc... 

、私は何をしたいのかを達成するために複数のクエリを実行しています:

私は知っていますこれは開始するのに時間がかかり、コード構造自体が間違っていることがあります。

質問:

1つのクエリによって、一度にすべての行を更新する方法は?私は配列を使うべきですか?

悪い英語と申し訳ありません。

+0

'for、while'のようないくつかのループを試すことができますか? –

+0

ええと、どんな例? :) – Tauras

+0

あなたはLaravelを使用しています。素晴らしいですが、なぜあなたは '$ _POST'を直接参照していますか?コントローラー '$ request'オブジェクトを介して引数を取得するはずです。 – tadman

答えて

0

コード

は、以下のようなものを試してみてください。私はあなたに役立つことを願っています

for($i=0;$i<2;$i++){ 

DB::table('people_job_types') 
->where('id', $id) 
->where('meta_id', '1') //here that id just pass it loop like 1 n 2.... 
->where('meta_key', '$job_type_partner') 
->update(['meta_value' => $job_type_partner] 
); 

} 
+0

動作しません。多分私の質問は間違っています。私は、メタキーと同じ名前の、変数内の指定されたmeta_valuesを持つすべてのmeta_keysを更新したいだけです。 :/ – Tauras

+0

エラーが発生しますか? –

+1

いいえ、あなたのコードではうまく動作しません。また、私は '' - > where( 'meta_key'、 '$ job_type_partner') ''この部分を理解していませんでした。私はidですべてのmeta_keysを選択し、変数にあるmeta_keysの値を設定したいと思います。 – Tauras

関連する問題