2013-06-26 56 views
0

我想創建一個PHP循環來獲取一個起始的int變量,並基於每個托盤的wigets數量來獲得該托盤的結束變量。然後從前一個托盤開始下一個托盤,其中1+爲結束編號。直到總數達到。我嘗試了幾個不同的循環,但沒有一個能讓我得到結果。這是最新的。它會給我托盤的數量,但它爲每個托盤保留相同的起始數字。PHP創建一個托盤計數器

for($x = 0; $x <= $num_of_skids; $x++) 
    { 
    $skid_num++; 
    $mfg_end_num = $mfg_begin + $per_skid - 1; 
    $mfg_begin_num = $mfg_end_num + 1; 
    fputs($fp, "SKID # " . str_pad($skid_num, 2, " ", STR_PAD_RIGHT) . " " . $cst_prefix .  $cst_begin . "-" . $cst_prefix . $cst_end . str_pad(" ", 5, " ") . $mfg_prefix . $mfg_begin_num . "-" . $mfg_prefix . $mfg_end_num . "\r\n"); 
} 

感謝 肯尼

+0

您可能要添加'$ x'喜歡這裏:'$ mfg_end_num = $ mfg_begin + $ per_skid - 1 + $ X;' –

+0

我認爲之前$ skid_num被初始化爲0循環。關於$ mfg_end_num,$ mfg_begin和$ per_skid。在循環之前它們是否都被初始化爲0? – kainaw

+0

$ skid_num和$ mfg_end_num先前設置爲0。 $ mfg_begin和$ per_skid從數據庫中提取。是的,他們都是在循環之前初始化的。 – user2524846

回答

0

你可以這樣做 -

$mfg_begin_num = $mfg_begin + ($x*$per_skid); // get the 0 based start 
$mfg_end_num = $mfg_begin_num + ($per_skid - 1); // subtract 1 due to 0 based loop 

,使其

for($x = 0; $x <= $num_of_skids; $x++) 
    { 
    $skid_num++; 
    $mfg_begin_num = $mfg_begin + ($x*$per_skid); 
    $mfg_end_num = $mfg_begin_num + ($per_skid - 1); 
    fputs($fp, "SKID # " . str_pad($skid_num, 2, " ", STR_PAD_RIGHT) . " " . $cst_prefix .  $cst_begin . "-" . $cst_prefix . $cst_end . str_pad(" ", 5, " ") . $mfg_prefix . $mfg_begin_num . "-" . $mfg_prefix . $mfg_end_num . "\r\n"); 
} 

看看這個在這個phpFiddle例子 - http://phpfiddle.org/main/code/5wg-mx2

這個輸出這一點 -

SKID # 1 XXXXXX-XXXXXX X100-X104 
SKID # 2 XXXXXX-XXXXXX X105-X109 
SKID # 3 XXXXXX-XXXXXX X110-X114 
+0

這使得$ mfg_begin_num從0開始。我需要$ mfg_being_num從一個預先確定的數字開始,從一個數據庫中抽取到$ mfg_begin變量。當我用它替換這個變量時,例如爲每行填充$ mfg_being_num:它將顯示100 - 104/100 - 104/100 - 104。 – user2524846

+0

對不起,錯過了。我已經在上面更新了我的答案。嘗試'$ mfg_begin_num = $ mfg_begin +($ x * $ per_skid);' – Sean

+0

非常感謝你的訣竅 – user2524846