Эй, ребята, я просто пытаюсь заставить эту глупую вещь работать, и я могу отрегулировать ее оттуда, я начинаю с массива, который скорее всего будет передан через $ _POST,
$cleanArray = array( array('type'=>'berries', 'numb'=>'5555'),
array('type'=>'melons', 'numb'=>'686') );
Затем я объявляю некоторые массивы данных, которые будут предоставлять структуру (если есть лучший способ сделать этот конкретный шаг, ДАЙ МНЕ!), Это три типа, всего шесть.Запрос является уникальным запросом, который необходим каждому типу для получения правильной информации, в то время как размеры являются размерами поля для этого элемента в 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
и превратит каждый раздел в подмассив. Вы можете увидеть это здесь.
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']);
}
Затем я пытаюсь добавить страницы и выполнять итерации, это не работает.Он должен использовать ключи один раз, чтобы получить имена столбцов, а затем перебирать значения ключей, пока они не потрачены.Если значения меньше двенадцати строк (всего 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;
}
}