私はこのコードを持っています:
<?php
$handle = fopen("GeneratePicklist.csv", "r");
$data = fgetcsv($handle, 5000, ",");
?>
これは、php ファイルを開き、それを php 配列に変換します。次に、配列の内容を一覧表示し、書式設定されたページに表示します。私はこのコードを持っていて、それは働いています。
<?php
echo "<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
<tr>
<td class=\"dataHeader\" width=\"100\">Mat.Loc.</td>
<td class=\"dataHeader\" width=\"20\">Qty</td>
<td class=\"dataHeader\">Description</td>
<td class=\"dataHeader\" width=\"150\">Part Number</td>
<td class=\"dataHeader\" width=\"30\">Multiplier</td>
<td class=\"dataHeader\" width=\"80\">Total Qty</td>
</tr>
";
$locatePartNoString = array_search("Part Number",$data);
$arrayStart = $locatePartNoString-1;
end($data);
$lastField = key($data);
$counter = ($lastField - $arrayStart);
$arrayBegin = $locatePartNoString+6;
while($counter>0) {
echo "
<tr>
<td class=\"centered\"><span class=\"title\">*".$data[$arrayBegin+4]."*</span><br>".$data[$arrayBegin+4]."</td>
<td id=\"qty".$counter."\" class=\"centered\">".$data[$arrayBegin+1]."</td>
<td>".$data[$arrayBegin+2]."</td>
<td class=\"centered\">".$data[$arrayBegin]."</td>
<td class=\"centered\"><input type=\"text\" id=\"multiplier".$counter."\" name=\"multiplier".$counter."\" value=\"1\" size=\"3\" style=\"border:1px dotted #CCC;\"></td>
<td class=\"centered\"><input type=\"text\" id=\"total".$counter."\" name=\"total".$counter."\" value=\"1\" size=\"3\" style=\"border:1px dotted #CCC;\"></td>
</tr>
";
$counter--;
}
echo "</table>";
?>
私がやろうとしているのは、CSV ファイルをトラバースし、$arrayBegin
変数のカバレッジと CSV データの最後の部分内でのみ特定のデータを選択することです。私は最初の行を実行し、うまく機能していますが、インクリメントする方法がわからないため、ポインターが CSV ファイルの次の行に移動し、データの最初の行と同じ数式を実行します。
CSV コンテンツのサンプルを次に示します。7 つのフィールドがあります。
ÊÊ,Part Number,Qty,Description,BB Type,Material Location,Serial Number
ÊÊ,013224-001,1,"PCA,DDR2-800,MINIDIMM MOD256MBx 40",BOM,ASSY,ID121608ZS
ÊÊ,122657-00A,1,SOFTWARE TEST (US M3 CTO),BOM,ASSY,
ÊÊ,376383-002,8,"ASSY, BLANK,SFF",BOM,ASSY,
ÊÊ,458943-003,1,"CA ASSY, SFP BATTERY, 15 POS, 28AWG, 24",BOM,ASSY,
ÊÊ,460499-001,1,"ASSY, 4/V650HT BATTERY CHARGER MODULE",BOM,ASSY,
ÊÊ,499256-001,2,"ASSY, BLANK,MEDIA BAY,ML350G6",BOM,ASSY,
ÊÊ,500203-061,2,"DIMM,4GB PC3-10600R,256Mx4,RoHS",BOM,ASSY,RAKWF8DXV2Q100
各行から特定のデータを選択して、次の行に進むだけです。while ループを使用して次の行に移動するにはどうすればよいですか? 今後ともご回答よろしくお願いいたします。