2016-12-18 4 views
1

я пытаюсь к следующимForeach петля вложенные 3 раза неприятность

Loop для каждого измерения крыши строки (fastbid_inspection_measurement_roof)

Затем Foreach строки захватить roof_pitch затем сделать запрос петли Еогеаспа против

fastbid_labor_tearoff где pitch идентичен $Pitch['roof_pitch']

, после чего результат выполнения этой строки соответствует fastbid_labor_tearoff и рассчитать его стоимость.

ПРЯМО СЕЙЧАС

Если есть одна запись он отлично работает, однако если есть две записи в пределах fastbid_inspection_meaasurement_roof то отзовется два результата. Я бы хотел, чтобы он повторил SUM TOTAL обоих или ВСЕ записей.

Куда я иду не так?

fastbid_inspection_measurement_roof схема

------------------------------- 
| id | roof deck | roof_pitch | 
------------------------------- 
| 01 | 1359 |  5  | 
------------------------------- 
| 02 | 1211 |  6  | 
------------------------------- 

схема fastbid_labor_tearoff

--------------------------------------------- 
| id | labor_cost | ground_drop | pitch | 
--------------------------------------------- 
| 01 | 22.50 |  7  | 5 | 
--------------------------------------------- 
| 02 | 23.50 |  7  | 6 | 
--------------------------------------------- 

Вот мой Foreach Loops

$RoofDecksssss = "SELECT * FROM fastbid_inspection_measurement_roof WHERE Prospect_API = '".$prosapi."'";   
foreach ($pdo->query($RoofDecksssss) as $RoofDeck) { 
       foreach ($RoofPitch as $Pitch) { 
        $TearOff_Labor_PerPitch = "SELECT * FROM fastbid_labor_tearoff WHERE pitch = '".$Pitch['roof_pitch']."'"; 
         foreach ($pdo->query($TearOff_Labor_PerPitch) as $TearOffCost) { 
          $LaborCost = $TearOffCost['labor_cost']; 
          $RoofDeckSQFT = $RoofDeck['roof_deck']; 
          $GroundDropCost = $TearOffCost['ground_drop'] * DeckSqFT_toRawSquare($RoofDeckSQFT); 
          $Total_Labor += $LaborCost * DeckSqFT_toRawSquare($RoofDeckSQFT); 

          $TotalLaborTearOffCost = $GroundDropCost + $Total_Labor; 

          echo $TotalLaborTearOffCost; 
         } 

       } 

      } 

ответ

1

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

echo $TotalLaborTearOffCost; 

Как у вас сейчас есть это, вы получите 1 выход для каждой итерации своей петли.

+0

Это правильно, я поддержал один, и он работает. Теперь я получаю сообщение об ошибке «PHP Warning: Недопустимое смещение строки« roof_pitch » – Kray

Смежные вопросы