2013-06-26 59 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