PHP / MySql: цикл Запрос для вставки строк и добавления суммы к весу (например, максимум 200 кг) и продолжения того же для следующей строки - PullRequest
1 голос
/ 01 июня 2019

Я пытаюсь добавить строки в новую таблицу.

Я использую цикл foreach для вставки данных, и я могу вставить данные.Я также могу достичь предела и добавить новую строку.Но проблема в том, что когда цикл закончен, он добавляет отдельную строку и не добавляет к желаемому пределу.

Я не слишком уверен, как мне добавить свою таблицу здесь.Но, пожалуйста, найдите код ниже:

$fetchRecordRS = DB::select("
Select `ID`
     , `DeliveryAddress`
     , `Postzone`
     , `CarrierID`
     , `DeliveryInstruction`
     , `JobID`
     , `JobName`
     , Quantity
     , `Bundlesize`
     , SUM(Bundles) as 'SumBundles'
     , SUM(Items) as 'SumItems'
     , WeightKgs
     , TotalWeightKgs 
     , SUM(WeightKgs) AS 'FixWeight'
     , Notes 
  FROM UpdatedCsvFiles
 WHERE DeliveryAddress != 'PLEASE LEAVE IN WAREHOUSE' 
   AND JobID != 0 
 GROUP 
    BY DeliveryAddress
     , JobName 
     , CarrierID
 ORDER 
    BY CarrierID
     , DeliveryAddress ASC
");


foreach ($fetchRecordRS as $row_FetchRecordRS) {  
    $id = $row_FetchRecordRS->ID;
    $carr_ID = $row_FetchRecordRS->CarrierID;
    $address = $row_FetchRecordRS->DeliveryAddress;
    $potzone = $row_FetchRecordRS->Postzone;
    $instruction = $row_FetchRecordRS->DeliveryInstruction;
    $quantity = $row_FetchRecordRS->Quantity;
    $jobID = $row_FetchRecordRS->JobID;
    $jobName = $row_FetchRecordRS->JobName;
    $bundlesize = $row_FetchRecordRS->Bundlesize;
    $bundle = $row_FetchRecordRS->SumBundles;
    $items = $row_FetchRecordRS->SumItems;
    //$num = $row_FetchRecordRS->FixWeight;
    //$suburb = $row_FetchRecordRS->Suburb;
    //$row_FetchRecordRS->TotalWeightKgs
    $num = $row_FetchRecordRS->TotalWeightKgs;
    $notes = $row_FetchRecordRS->Notes;
    $num = $row_FetchRecordRS->FixWeight;


    if ($num + $total > 200) {
        echo ($num + $total) . "in Van " . $i ;
        $sqltransitlist = DB::select("Insert INTO TransitList(genID, total) Values ('$i','$total')");
        // loop A
        foreach ($arr as $data) {
            // echo "<br> first loop: " . $i;
            $sqlquerytest = DB::select("Insert INTO GenerateRun(CarrierID, DeliveryAddress, Postzone, DeliveryInstruction, Quantity, JobID,
                                                              JobName, Notes, Bundlesize, Bundles, Items,   FinalWeight, LodingZoneID)
                                                              VALUES('"  . $data['CarrierID'] ."','"  . $data['DeliveryAddress'] ."','" . $data['Postzone'] .
                "','"  .  $data['DeliveryInstruction']. "','" .$data['Quantity']  . "','"  . $data['JobID'] .
                "','"  . $data['JobName'] . "','"  .$data['Notes']  . "','" . $data['Bundlesize']. "','"  .$data['Bundles'] .
                "','"    . $data['Items'] ."','"  .$data['FixWeight']."','" .$i ."')");
        }

        $arr = array();
        $i++;
        $total = 0;
    }

    $total += $num;
    $arr[] = array('CarrierID' => $carr_ID, 'DeliveryAddress' => $address, 'Postzone' => $potzone,
        'DeliveryInstruction' => $instruction, 'Notes' => $notes, 'Quantity' => $quantity, 'JobID' => $jobID,
        'JobName' => $jobName, 'Bundlesize' => $bundlesize, 'Bundles' => $bundle, 'Items' => $items,
        'FixWeight' => $num);

}

if ($total > 0) {
    $sqltransitlist = DB::select("Insert INTO TransitList(genID, total) Values ('$i','$total')");
    // loop B
    foreach ($arr as $data) {
        // echo "<br> Second loop: " . $i;
        $sqlquerytest = DB::select("Insert INTO GenerateRun(CarrierID, DeliveryAddress, Postzone, DeliveryInstruction, Quantity, JobID,
                                                   JobName, Notes, Bundlesize, Bundles, Items,   FinalWeight, LodingZoneID)
                                                   VALUES('"  . $data['CarrierID'] ."','"  . $data['DeliveryAddress'] ."','" . $data['Postzone'] .
            "','"  .  $data['DeliveryInstruction']. "','" .$data['Quantity']  . "','"  . $data['JobID'] .
            "','"  . $data['JobName'] . "','"  .$data['Notes']  . "','" . $data['Bundlesize']. "','"  .$data['Bundles'] .
            "','"    . $data['Items'] ."','"  .$data['FixWeight']."','" .$i ."')");

        $i++;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...