私はこの愚かなことを働かせようとしており、そこから調整することができます 私は配列で始まり、おそらく$ _POST経由で転送されます、複数のクエリとデータ配列を使ったPHPのPDF書き込み
$cleanArray = array(array('type'=>'berries', 'numb'=>'5555'),
array('type'=>'melons', 'numb'=>'686'));
私はその後、(この特定のステップを行うには良い方法がありますならば、私に知らせて!)構造を提供しますいくつかのデータ配列を宣言し、これはタイプの3で、6点の合計があります。クエリでは、各タイプが正しい情報を返す必要があるユニーククエリですが、サイズはフィールドサイズで、pdfのそのアイテムに対応しています。
$dataShape = array(
'berries' => array( 'sizes' => array(0 => 25, 1 => 20, 3 => 10, 4 => 15, 5 => 10, 6 => 20, 7 => 20, 8 => 10, 9 => 15, 10 => 10, 11 => 15, 12 => 10, 13 => 10, 14 => 10, 15 => 10, 16 => 10, 17 => 10, 18 => 10, 19 => 200),
'query' => array('shipper, po, commodity as comm, count, size, label, variety, pack_date AS date, grower_lot AS lot, CONCAT(color1, "-", color2) AS color, CONCAT(sizing1, "-", sizing2, "/", "sizing3", "-", sizing4) AS size, CONCAT(firmness1, "-", firmness2) AS firmness, CONCAT(scars_count1, "-", scars_count2) AS scars_count, CONCAT(bruise_count2, "-", bruise_count2) AS bruise_count, CONCAT(decay_count1, "-", decay_count2) AS green, CONCAT(sugar_brix1, "-", sugar_brix2) brix, rating, comments')),
'citrus' => array( 'sizes' => array(0 => 25, 1 => 20, 3 => 10, 4 => 15, 5 => 10, 6 => 20, 7 => 20, 8 => 10, 9 => 15, 10 => 10, 11 => 15, 12 => 10, 13 => 10, 14 => 10, 15 => 10, 16 => 10, 17 => 10, 18 => 10, 19 => 200),
'query' => array('shipper, po, commodity as comm, count, size, label, variety, pack_date AS date, grower_lot AS lot, CONCAT(color1, "-", color2) AS color, CONCAT(texture1, "-", texture2) AS texture, CONCAT(puff1, "-", puff2) AS puff, CONCAT(scar1, "-", scar2) AS scars, CONCAT(solidity1, "-", solidity2) AS solidity, CONCAT(green1, "-", green2) AS green, CONCAT(sugar_brix1, "-", sugar_brix2) brix, rating, comments')),
'melons' => array( 'sizes' => array(0 => 25, 1 => 20, 3 => 10, 4 => 15, 5 => 10, 6 => 20, 7 => 20, 8 => 10, 9 => 15, 10 => 10, 11 => 15, 12 => 10, 13 => 10, 14 => 10, 15 => 10, 16 => 10, 17 => 10, 18 => 200),
'query' => array('shipper, po, commodity as comm, count, size, label, variety, pack_date AS date, grower_lot AS lot, CONCAT(color1, "-", color2) AS color, CONCAT(ground_color1, "-", ground_color2) AS ground_color, CONCAT(texture1, "-", texture2) AS texture, CONCAT(scar1, "-", scar2) AS scars, CONCAT(solidity1, "-", solidity2) AS solidity, CONCAT(cut1, "-", cut2) AS cut, CONCAT(sugar_brix1, "-", sugar_brix2) brix, rating, comments')),
);
私はその後、型に基づいてクエリを実行しようとすると、タイプの構造は、各配列にtype
名に名前を付け、サブアレーに各セクションをオンにします。 You can see it here.
foreach($cleanArray as $key=>$val) { echo $key;
$result[$cleanArray[$key]['type']]
= $dbc->fetch_array("SELECT ".implode(',',$dataShape[ $cleanArray[$key]['type'] ]['query'])." FROM `"
.$cleanArray[$key]['type']."` WHERE (status = '0' OR status = '1') AND `report_key` = "
.$cleanArray[$key]['numb']);
}
私は、ページを追加し、ものを反復処理しようとすると、これは動作しません。キーを使用して列名を取得した後、キー値が繰り返し使用されるまで反復処理する必要があります。値が12行未満の場合(コメントがそれ自身の行を占めるため合計24行)、12行が存在するまで空の行を繰り返します。
foreach($result as $fruitType=>$fruitTypeArray) {
$nameKeys = array_keys($fruitTypeArray[0]);
$i=0; $pdf->AddPage('L');
foreach($dataShape[$fruitType]['sizes'] as $dataShapevalue) {
$pdf->Cell($dataShapevalue6,ucwords(str_replace('_',' ',$nameKeys[$i++])),1,0,'L',1);
}
// go to next row
$y_axis = $y_axis + $row_height;
foreach($dataShape[$fruitType]['sizes'] as $dataShapeValue) {
foreach($fruitTypeArray as $queryName=>$queryValue) {
if(!$queryName=='comments') {
$pdf->Cell($dataShapeValue,6,$queryValue,1,0,'L',1);
} else {
// go to next row
$y_axis = $y_axis + $row_height;
$pdf->Cell($dataShapeValue,6,ucwords(str_replace('_',' ',$nameKeys[$i++])),1,0,'L',1);
// go to next row
$y_axis = $y_axis + $row_height;
}
}