รบกวนขอวิธี select ข้อมูล ตามภาพหน่อยครับ ลองทำแล้วต้อง group by สาขา ไว้แถบบน group by สินค้าแถบซ้าย ที่นี้ติดปัญหาว่าไม่สามารถใส่จำนวนลงตามช่องได้เลยครับ
แล้วที่ทำได้ ทำได้แบบไหน ทำมาให้ดูก่อน
ถ้าอยากเป็นและเขียนเองได้ ก็ลองอ่านดูครับ มีวิธีการสอนตั้งแต่เริ่มต้น แต่ต้องประยุกต์เอาเอง
https://www.thaicreate.com/php.html
แต่ถ้าอยากได้โค๊ดสำเร็จ จ้างเขาครับ
ถ้าอยากให้แก้โค๊ดหรือชี้แนะ ก็ให้เอาโค๊ดที่เขียนไว้ มาลง คนช่วยจะได้รู้ว่าคนถามมีความรู้ขนาดไหน
จะสอนมากสอนน้อยหรือจะให้ไปอ่านบทความที่มีประโยชน์ก่อน ก็ว่ากันไป
ถ้าไม่เคยเขียนโค๊ดเลย หรือแค่รู้งูๆปลาๆ ก็ให้เริ่มจาก getting start เลยจะได้รู้เรื่องมากขึ้น
อ่านแล้วไม่เข้าใจก็ให้อ่านหลายๆรอบ ทดสอบตามที่ตัวอย่างทำไว้ ให้มันได้ตามตัวอย่างก่อน
แล้วค่อยเพิ่มรายละเอียดไปที่ละอย่าง ลบตัวอย่างที่ไม่จำเป็นออกไปที่ละส่วน
มันจะได้เข้าใจลักษณะการทำงานของโปรแกรม
Date :
2020-02-07 12:03:50
By :
Chaidhanan
ตอบความคิดเห็นที่ : 1 เขียนโดย : Chaidhanan เมื่อวันที่ 2020-02-07 12:03:50
รายละเอียดของการตอบ ::
Code (PHP)
<?php
require_once 'PHPExcel/Classes/PHPExcel.php';
require_once 'typedate.php';
session_start();
/** PHPExcel */
error_reporting(E_ALL);
date_default_timezone_set('Asia/Bangkok');
// Write data from MySQL result
$conn = new mysqli('localhost', 'root', 'datapower', 'db_datapower');
// Check connection
if ($conn->connect_error) {
die("ไม่สามารถเชื่อมต่อฐานข้อมูลได้ " . $conn->connect_error);
exit;
}
// echo "ผ่าน";
mysqli_set_charset($conn, 'utf8');
$fontTahoma = array(
'font' => array(
'bold' => true,
'name' => 'Tahoma'
));
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
//$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT);
$objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
$objPHPExcel->getActiveSheet()->getPageSetup()->setScale(100);
//$objPHPExcel->getActiveSheet()->getPageMargins()->setHerder(); // กำหนดระยะขอบ บน
$objPHPExcel->getActiveSheet()->getPageMargins()->setTop(0); // กำหนดระยะขอบ บน
$objPHPExcel->getActiveSheet()->getPageMargins()->setRight(0); // กำหนดระยะขอบ ขวา
$objPHPExcel->getActiveSheet()->getPageMargins()->setLeft(0); // กำหนดระยะขอบ ซ้าย
$objPHPExcel->getActiveSheet()->getPageMargins()->setBottom(0); // กำหนดระยะขอบ ล่าง
//$objPHPExcel->getActiveSheet()->getPageMargins()->setFooter(0.5); // กำหนดระยะขอบ ล่าง
// Set properties
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
->setLastModifiedBy("Maarten Balliauw")
->setTitle("Office 2007 XLSX Test Document")
->setSubject("Office 2007 XLSX Test Document")
->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
->setKeywords("office 2007 openxml php")
->setCategory("Test result file");
$sql_1 = "select arship.id,arship.code,codeship,textarship from recipes inner join arship on recipes.codeship = arship.id where so='".$_POST['so']."' group by codeship order by arship.code asc"; //group by สาขา
$query_1 = mysqli_query($conn, $sql_1);
$sql_2 = "select barcode,po,codepro,detail2 from recipes inner join stmas on recipes.codepro = stmas.code where so='".$_POST['so']."' group by codepro order by codepro asc"; //group by สินค้า
$query_2 = mysqli_query($conn, $sql_2);
$row = 4;
$i = 'D';
while($result_2 = mysqli_fetch_assoc($query_2)){
$codepro = $result_2['codepro'];
$objPHPExcel->getActiveSheet()->setCellValue('C1' , "เลขที่ใบสั่งซื้อ");
$objPHPExcel->getActiveSheet()->setCellValue('A'.$row , $result_2['barcode']);
$objPHPExcel->getActiveSheet()->setCellValue('C'.$row , $result_2['detail2']);
$objPHPExcel->getActiveSheet()->setCellValue($i.'1' , $result_2['po']);
$row++;
}
while($result_1 = mysqli_fetch_assoc($query_1)){
$codeship = $result_1['codeship'];
$objPHPExcel->getActiveSheet()->setCellValue($i.'2' , $result_1['code']);
$objPHPExcel->getActiveSheet()->setCellValue($i.'3' , $result_1['textarship']);
$i++;
}
$objPHPExcel->getActiveSheet()->setCellValue($i.'3' , "รวม");
$objPHPExcel->getActiveSheet()->setTitle("TEST");
// Redirect output to a client’s web browser (Excel2007)
header('Content-Type: application/vnd.openmxlformats-officedocument.spreadsheetml.sheet');
//header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="homework.xls"');
header('Cache-Control: max-age=0');
// If you're serving to IE 9, then the following may be needed
// If you're serving to IE over SSL, then the following may be needed
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified
header('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header('Pragma: public'); // HTTP/1.0
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;
Date :
2020-02-07 13:14:28
By :
PACKLpk
ความต้องการคืออะไรแน่ครับ จำนวน อะไรลงไม่ได้ บอกให้ชัดเจนหน่อยครับ
ถ้าต้องไปหาเองคงไม่ทำนะครับ
บอกอะไรที่มันFocus ง่ายๆ ชัดเจนหน่อยครับ
คือดูโค๊ดมันก็ทำงานถูกต้อง ข้อมูลมันก็ เขียนลง csv ได้ถูกต้อง
ที่ผิดมันคืออะไร จำนวนคืออะไร มาจากไหน จะกำหนดลงที่ช่องไหน
input output คืออะไร ถ้าไม่รู้ แล้วจะ process ยังไง
Date :
2020-02-07 13:35:29
By :
Chaidhanan
ok ครับ ชัดเจนสำหรับคนเดียว พอดีผมไม่เข้าใจ ก็รอคนที่เข้าใจก็แล้วกัน 555
Date :
2020-02-07 17:43:50
By :
Chaidhanan
ศึกษา pivot data แบบ dynamic ครับ
ค่อนข้างยาก
ทำได้ แต่ขี้เกียจทำตัวอย่าง มันยาวจัด
Date :
2020-02-13 14:09:07
By :
WWWWIN
Load balance : Server 05