0

次の 2 つのことを行うスクリプトを作成しようとしています。

1)2列のテーブルを実行してから、内容を2列の配列にプッシュします

2) その 2 列の配列 (#1 で作成) を実行し、2 列の MySQL テーブルに再挿入します。

#1の私の試みは次のとおりです。

//grab desired product options incase of 'undo'
$optionArray = array();
$fabricArray = array();
$optionSelect = "SELECT * FROM $clientOptions WHERE bag_id ='$bagID' ";
$optionResult = mysql_query($optionSelect, $db_bags);
while ($optionData = mysql_fetch_assoc($optionResult)){
        $optionSku = $optionData['option_sku']; 
        $fabricSku = $optionData['fabric_sku']; 
        array_push($optionArray, $optionSku);
        array_push($fabricArray, $fabricSku);
        array_push($optionArray, $fabricArray);
}
$_SESSION['options_array'] = $optionArray;

#2での私の試みは次のとおりです。

foreach ($_SESSION['options_array'] as $optionSku){
    foreach ($optionSku as $fabricSku){
        $insertOption = "INSERT INTO $clientOptions (bag_id, product_sku, option_sku, fabric_sku) VALUES ('$bagID', '$productSku', '$optionSku', '$fabricSku')";
        mysql_query($insertOption, $db_bags);
    }//end of fabric sku for loop
}//end of option sku for loop
  • Notices: はい、このようにしなければなりません... いいえ、ある MySQL テーブルから次のテーブルに転送することはできません。はい、セッションを使用する必要があります。

汎用: すべてのユーザーが削除機能を元に戻すことができます。ユーザーは、製品とそのオプションを削除できます。その後、その削除を「元に戻す」ように通知されます。削除したばかりの製品はセッションに保存され、オプション (およびファブリック) はセッション配列に保存されます。

4

1 に答える 1

1

構築する配列は次のようになります。

optionArray[0] = optionSku
optionArray[1] = array(fabricSku)

等々...

データが完全に必要な場合は、次のようなものが必要です。

optionArray[0] = array(optionSku, fabricSku)

これを行うには、次のようにします。

while ($optionData = mysql_fetch_assoc($optionResult)){
        $optionSku = $optionData['option_sku']; 
        $fabricSku = $optionData['fabric_sku']; 
        array_push($optionArray, array($optionSku, $fabricSku));
}

そして、私はそれを次のように減らすことになります:

while ($optionData = mysql_fetch_assoc($optionResult)){
        array_push($optionArray, array($optionData['option_sku'], $optionData['fabric_sku']));
}

次に、ループは次のようになります(bagIDまたはproductSkuがどこから来ているのかわかりませんが):

foreach($_SESSION['options_array'] as $optionSkuData) {
    $insertOption = "INSERT INTO $clientOptions (bag_id, product_sku, option_sku, fabric_sku) VALUES ('$bagID', '$productSku', '$optionSkuData[0]', '$optionSkuData[1]')";
    mysql_query($insertOption, $db_bags);
}
于 2013-09-22T03:30:23.383 に答える