2013-06-26 3 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"); 
} 

Благодаря Kenny

+0

Вы можете добавить '$ x' здесь, как:' $ mfg_end_num = $ mfg_begin + $ per_skid - 1 + $ х; ' –

+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

Простите, пропустил это. Я обновил свой ответ выше. try '$ mfg_begin_num = $ mfg_begin + ($ x * $ per_skid);' – Sean

+0

большое спасибо, что сделал трюк – user2524846