2016-07-11 25 views
0

問題不在於我如何生成編號爲,這對於我擁有的其他應用程序來說工作正常。問題是計算盒子的總數,並多次遍歷一個forloop。現在我乘以box_ct * qty_ord來獲得總數。順便說一句,我仍然試圖理解我可以用foreach和for循環做的所有事情,所以如果有人有更好的主意,太好了。 澄清:我正在通過訂單號搜索數據庫並將qty_ord,box_ct和item_no分別拉回。在某些訂單中,有多個項目。因此,對於每個項目,我需要乘以box_ct = count的qty_ord,對於那個特定的項目,我需要通過基於我的計數的循環進行迭代。現在,如果我刪除foreach並硬編碼for循環count變量,它可以正常工作。任何關於我的foreach有什麼錯誤的想法?如何在訂單上爲每個盒子創建唯一編號

qty_ord | box_ct | item_no 
------------------------ 
1   2  10001 
3   3  10002 
2   1  10003 
2   3  10004 
2   6  10005 

以下是我的代碼。

$sql ="SELECT imitmidx_sql.box_ct, oeordlin_sql.item_no, oeordlin_sql.qty_ord 
        FROM imitmidx_sql 
        JOIN oeordlin_sql ON oeordlin_sql.item_no = imitmidx_sql.item_no WHERE ord_no ='$orderNum'"; 

      $query = odbc_exec($conn, $sql); 

      $row7 = odbc_fetch_array($query); 

      foreach($row7['item_no'] as $item){ 
       $count = $row7['qty_ord'] * $row7['box_ct']; 

        for($counter = 0; $counter <= $count; $counter++){ 
         //GRAB NUMBER FROM FILE 
         $sscc = file_get_contents("ucc128.txt"); 
         //INCREMENT NUMBER 
         $sscc++; 
         //PUT THE NUMBER BACK IN FILE 
         $sscc = file_put_contents("ucc128.txt", $sscc); 
         //COMBINE STATIC NUMBER AND NUMBER FROM FILE 
         $ssccnumber = "00950000".$sscc; 
         //CREATE CHECK DIGIT MATH 
         $ssccnumArray = str_split((string)$ssccnumber); 
         $ssccstep1 = array_combine(range(1, count($ssccnumArray)), $ssccnumArray); 

         $ssccstep2 = 0; 
         $ssccstep4 = 0; 
         foreach($ssccnumArray as $k => $v){ 
          if($k%2){ 
           $ssccstep2 += (int)$v; 
          }else{ 
           $ssccstep4 += (int)$v; 
          } 
         } 

         $ssccstep3 = (int)$ssccstep2 * 3; 
         $ssccstep5 = (int)$ssccstep3 + (int)$step4; 
         $ssccCheckDigit = (ceil($ssccstep5/10) * 10) - $ssccstep5; 
         //END CREATE CHECK DIGIT 
         //CONCATENATE FULL NUMBER  
         $sscc1 = $ssccnumber.$ssccCheckDigit; 

         $sql = "INSERT INTO ucc128 (sscc, ord_no) VALUES ('$sscc1' ,'$orderNum')"; 
         #echo $sql.'<br />'; 
         odbc_exec($connPRONUMBER, $sql); 
       } 
      } 
+0

你的問題很混亂。你想具體完成什麼?你需要有一個計數器來增加和打印HTML? – Chris

+0

我對這個令人困惑的問題表示歉意。我需要找到訂單上每個項目的總箱號,並將其用作計數來生成一個數字foreach箱。因此,如果卡車上有5件物品,我需要退還每件物品的數量,然後乘以箱子數來計算我的數量。然後我需要遍歷我知道工作的數字生成器(這是我的forloop)。我很確定我的問題與我的第一個foreach($ row7 ['item_no']爲$ item)有關。 – Ryan

+0

我建議你編輯你的問題,讓它更清楚你知道什麼 – anhoppe

回答

0

我的foreach無法正常工作,所以我所做的就是使用我的SQL查詢獲得總和。

SELECT SUM(imitmidx_sql.box_ct * oeordlin_sql.qty_ord) AS total 
        FROM imitmidx_sql 
        JOIN oeordlin_sql ON oeordlin_sql.item_no = imitmidx_sql.item_no WHERE ord_no ='$orderNum' 

然後我可以輸出它並將$ row7 ['total']保存到變量$ count中。

0

我相信你的問題可能與以下幾點:

foreach($row7['item_no'] as $item){ 
    $count = $row7['qty_ord'] * $row7['box_ct']; 
    //... 
} 

這應該是:

foreach($row7['item_no'] as $item){ 
    $count = $item['qty_ord'] * $item['box_ct']; 
    //... 
} 

你從查詢結果中抓取數據,相對於當前行。

+0

好點,但它仍然無法正常工作。當我硬編碼for循環,並擺脫它的foreach它的工作。 – Ryan

相關問題