2

3列のテーブルがあります:

id   (this is the id of my table)
parent  (this is the parent)
position  (and this is the position)

そして、私はこの配列を持っています$_arr['menu']:

array (size=3)
  13 => 
    array (size=1)
      'parent' => string '0' (length=1)   
  14 => 
    array (size=1)  
      'parent' => string '13' (length=2) 
  25 => 
    array (size=1)  
      'parent' => string '0' (length=1)   

配列$_arr['menu']内のこれらの値を使用してテーブルを更新したいと考えています。

次のようなことをすると思いますが、1つのクエリで(おそらくケースインを使用して):

UPDATE table SET position = 1, parent = 0 WHERE id = 13;

UPDATE table SET position = 2, parent = 13 WHERE id = 14; 

UPDATE table SET position = 3, parent = 0 WHERE id = 25;

その配列からこれらの値を取得する方法と更新を行う方法をマスターしてください!

どうもありがとう

4

1 に答える 1

3

あなたの質問が届いたかどうかわかりませんが、私のスニペットを書きます。(php構文はよく覚えていないので未検証ですが、言いたいことは伝わっていると思います)

try {
    $db->beginTransaction();
    $increment = 0;
    foreach ($arr as $id => $innerArray) {
            $db->query("UPDATE table SET position = ".(++$increment).", parent = ".$innerArray['parent']." WHERE id =".$id);
    }
    $db->commit();
} catch (Exception $e) {
    $db->rollback();
}
于 2012-12-23T21:39:47.270 に答える