Hello All - this is a complete newbie question and I hope I don' t get laughed at too hard. I am just wondering if there is a better way to write this segment of code so it is not redundant?
Maybe a while statement with $con++ and $conPAD++? The only thing changing is the pad length and the segment value. Possibly add those to an array?
//concatenate 3 columns and pad with proper size requirement per UPS
while($row = db2_fetch_assoc($stmt)){
if($row['SEGMNT'] == '020'){
$con = $row['SEGMNT']."".$row['VAQUAL']."".rtrim($row['DATA']);
$conPAD = str_pad($con, 77, ' ');
echo $conPAD;
fwrite($file,"".$conPAD."");
}
elseif($row['SEGMNT'] == '*AA'){
$con1 = $row['SEGMNT']."".$row['VAQUAL']."".rtrim($row['DATA']);
$conPAD1 = str_pad($con1, 47, ' ');
echo $conPAD1;
fwrite($file,"".$conPAD1."");
}
elseif($row['SEGMNT'] == '*BA'){
$con2 = $row['SEGMNT']."".$row['VAQUAL']."".rtrim($row['DATA']);
$conPAD2 = str_pad($con2, 135, ' ');
echo $conPAD2;
fwrite($file,"".$conPAD2."");
}
elseif($row['SEGMNT'] == '*CA'){
$con3 = $row['SEGMNT']."".$row['VAQUAL']."".rtrim($row['DATA']);
$conPAD3 = str_pad($con3, 282, ' ');
echo $conPAD3;
fwrite($file,"".$conPAD3."");
}
elseif($row['SEGMNT'] == '*FA'){
$con4 = $row['SEGMNT']."".$row['VAQUAL']."".rtrim($row['DATA']);
$conPAD4 = str_pad($con4, 43, ' ');
echo $conPAD4;
fwrite($file,"".$conPAD4."");
}
elseif($row['SEGMNT'] == '*PA'){
$con5 = $row['SEGMNT']."".$row['VAQUAL']."".rtrim($row['DATA']);
$conPAD5 = str_pad($con5, 169, ' ');
echo $conPAD5;
fwrite($file,"".$conPAD5."");
}
elseif($row['SEGMNT'] == '*SA'){
$con6 = $row['SEGMNT']."".$row['VAQUAL']."".rtrim($row['DATA']);
$conPAD6 = str_pad($con6, 9, ' ');
echo $conPAD6;
fwrite($file,"".$conPAD6."");
}
elseif($row['SEGMNT'] == '*IA'){
$con7 = $row['SEGMNT']."".$row['VAQUAL']."".rtrim($row['DATA']);
$conPAD7 = str_pad($con7, 86, ' ');
echo $conPAD7;
fwrite($file,"".$conPAD7."");
}
elseif($row['SEGMNT'] == '*KA'){
$con8 = $row['SEGMNT']."".$row['VAQUAL']."".rtrim($row['DATA']);
$conPAD8 = str_pad($con8, 554, ' ');
echo $conPAD8;
fwrite($file,"".$conPAD8."");
}
elseif($row['SEGMNT'] == '*LA'){
$con9 = $row['SEGMNT']."".$row['VAQUAL']."".rtrim($row['DATA']);
$conPAD9 = str_pad($con9, 291, ' ');
echo $conPAD9;
fwrite($file,"".$conPAD9."");
}
elseif($row['SEGMNT'] == '*EA' && $row['VAQUAL'] == 'RES'){
$con10 = $row['SEGMNT']."".$row['VAQUAL']."".rtrim($row['DATA']);
$conPAD10 = str_pad($con10, 6, ' ');
echo $conPAD10;
fwrite($file,"".$conPAD10."");
}
elseif($row['SEGMNT'] == '*EA' && $row['VAQUAL'] == 'CDI'){
$con11 = $row['SEGMNT']."".$row['VAQUAL']."".rtrim($row['DATA']);
$conPAD11 = str_pad($con11, 30, ' ');
echo $conPAD11;
fwrite($file,"".$conPAD11."");
}
elseif($row['SEGMNT'] == '*EA' && $row['VAQUAL'] == 'HFP'){
$con12 = $row['SEGMNT']."".$row['VAQUAL']."".rtrim($row['DATA']);
$conPAD12 = str_pad($con12, 6, ' ');
echo $conPAD12;
fwrite($file,"".$conPAD12."");
}
elseif($row['SEGMNT'] == '*EA' && $row['VAQUAL'] == 'CWM'){
$con13 = $row['SEGMNT']."".$row['VAQUAL']."".rtrim($row['DATA']);
$conPAD13 = str_pad($con13, 6, ' ');
echo $conPAD13;
fwrite($file,"".$conPAD13."");
}
elseif($row['SEGMNT'] == '*EA' && $row['VAQUAL'] == 'SAT'){
$con14 = $row['SEGMNT']."".$row['VAQUAL']."".rtrim($row['DATA']);
$conPAD14 = str_pad($con14, 6, ' ');
echo $conPAD14;
fwrite($file,"".$conPAD14."");
}
elseif($row['SEGMNT'] == '*EA' && $row['VAQUAL'] == 'EDS'){
$con15 = $row['SEGMNT']."".$row['VAQUAL']."".rtrim($row['DATA']);
$conPAD15 = str_pad($con15, 6, ' ');
echo $conPAD15;
fwrite($file,"".$conPAD15."");
}
elseif($row['SEGMNT'] == '*NA' && $row['VAQUAL'] == '006'){
$con16 = $row['SEGMNT']."".$row['VAQUAL']."".rtrim($row['DATA']);
$conPAD16 = str_pad($con16, 206, ' ');
echo $conPAD16;
fwrite($file,"".$conPAD16."");
}
else{
$con17 = $row['SEGMNT']."".$row['VAQUAL']."".rtrim($row['DATA']);
fwrite($file,"".$con17."");
//echo out for display only - remove once verified
echo $row['SEGMNT'];
echo $row['VAQUAL'];
echo $row['DATA'];
}
}
Just looking for suggestions or ideas. This just seems pretty repetitive and I personally can't think of a way to shorten this up a bit.
I appreciate any feedback.
Thanks,
j