-1

選択ボックスのあるフォームがあり、行をテーブルに更新して重複して挿入されました。しかし、今は選択ボックスを複数選択ボックスに変更しました。では、どうすれば複数の行を挿入できますか? 行ごとに foreach ループを 2 回使用してみました。しかし、そのロジックの問題は、ある配列から別の foreach ループ内にある値を挿入できないことです。助けてください

HTML:

//html
<select name="customer_groupings[]"  multiple="multiple">
<option value="-1">-All Groups-</option>
<option value="46" selected="selected">Accessories / Retailer</option>
<option value="47" selected="selected">Counter</option>
<option value="14" selected="selected">Export</option>
<option value="45">Fast Fit</option>
<option value="2">Independent</option>
<option value="44">Internal</option>
<option value="1">National</option>
<option value="19">Other</option>
</select>
<select name="penetration_group[]"  multiple="multiple">
<option value="-1">All</option>
<option value="1" selected="selected">Main Supplier</option>
<option value="2" selected="selected">Not Main Supplier</option>
<option value="3" selected="selected">New Customer</option>
</select>

// there are other form elements as well.

PHP:

// php
/*
table contact_scripts has the following fields
ID (PK)
branch
customerGroupID
penetrationGroupID
type
message

branch,customerGroupID,penetrationGroupID,type are UNIQUE

*/
foreach ($customerGroupID as $value) {
    $q = $this->reporting->query("
        INSERT INTO
            `contact_scripts` (`branch`, `customerGroupID`, `type`, `message`)
        VALUES
            (-1, {$value}, {$type}, '{$message}')
        ON DUPLICATE KEY UPDATE
            message = '{$message}'
    ");
}

foreach ($penetrationGroupID as $value) {
    $q = $this->reporting->query("
        INSERT INTO
            `contact_scripts` (`branch`, `penetrationGroupID`, `type`, `message`)
        VALUES
            (-1, {$value}, {$type}, '{$message}')
        ON DUPLICATE KEY UPDATE
            message = '{$message}'
    ");
}

明らかに、これは正しい方法ではないため、希望どおりに機能しません。

4

1 に答える 1

0

あなたがここで何を求めているのか理解できません。他のループから何かにアクセスする必要があるのはなぜですか? あなたのクエリには、それを示唆するものは何もありません。1 つのループを別のループ内に移動する必要があるかもしれません。

foreach ($customerGroupID as $cgid) {
  ...
  foreach ($penetrationGroupID as $pgid) {
    ...
  }
}
于 2012-11-09T17:31:27.517 に答える