|
|
|
PHPWord เกี่ยวกับการ Loop เนื้อหาแสดงตามเทมเพลตที่กำหนด |
|
|
|
|
|
|
|
ผมเขียนหน้าเว็บให้ส่งออกไฟล์ Word โดยใช้ PHPWord แล้วติดปัญหาเรื่องจะให้ดึงข้อมูลจากฐานมาแสดงเป็นข้อๆ
คำสั่งที่ผมใช้
Code (PHP)
use PhpOffice\PhpWord\PhpWord;
use PhpOffice\PhpWord\TemplateProcessor;
session_start();
require_once('../../services/config.inc.php');
require_once('../f_thaidate.php');
$id = 3;
$stmt = $conn->prepare("SELECT p.*,o.*,MIN(c.proceed_start) AS date_s, MAX(c.proceed_end) AS date_e FROM data_projects p INNER JOIN co_office o ON p.hospcode = o.off_id INNER JOIN data_proceeds c ON p.projectid = c.projectid WHERE p.projectid = :id");
$stmt->bindParam('id', $id, PDO::PARAM_INT);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
$stmt = $conn->prepare("SELECT * FROM data_objects WHERE projectid = :id");
$stmt->bindParam('id', $id, PDO::PARAM_INT);
$stmt->execute();
$robj = $stmt->fetchAll(PDO::FETCH_ASSOC);
require_once('../../plugins/phpword/vendor/autoload.php');
$phpWord = new PHPWord();
$section = new TemplateProcessor('project_template.docx');
$section->setValue('Value1', $result['projectname']);
$section->setValue('Value2', $result['projectcode']);
$i = 1;
foreach($robj as $robj) {
$section->setValues(array('Value4' => $i, 'Value5' => $robj['objectname']));
$i++;
};
header("Content-Disposition: attachment; filename=project_word.docx");
$section->saveAs('php://output');
คิวรี่ด้วย PDO
แต่พอแสดงออกมาจะแสดงออกมาแค่ 1 แถว โดยเนื้อหามี 2 แถวเหมือนรูปด้านล่างครับ
ไม่สามารถว่าต้องแก้ไขยังไง
Tag : PHP, MySQL, CSS, HTML5, Word (Word.Application), Bootstrap Framework
|
ประวัติการแก้ไข 2024-03-28 12:21:20 2024-03-30 08:02:16
|
|
|
|
|
Date :
2024-03-28 10:57:07 |
By :
pphat21 |
View :
340 |
Reply :
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
foreach($robj as $robj) {
ตัวแปรมันซ้ำกัน สีแดง น่าจะต้องเป็น $robj_ro
|
|
|
|
|
Date :
2024-03-29 07:49:25 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จากบันทัดนี้ เข็คข้อมูลดูหน่อยว่ามาครบไหม
Code (PHP)
$stmt->execute();
$robj = $stmt->fetchAll(PDO::FETCH_ASSOC);
die( print_r( $robj, true));
ใส่ tag php ให้โค๊ดหน่อย จะได้อ่านง่าย
เหนือกล่องกรอกข้อความ ด้านขวา
ปล. อันนี้เดาเอา รู้สึกว่า $session->setValue();
น่าจะมีคำสั่ง ขึ้นรายการใหม่ หรือเปล่า
รายการที่แสดง เป็นรายการแรก หรือรายการสุดท้าย
ปล. อีกที ไปค้นตัวอย่างมา เพื่อจะได้ประโยชน์
https://github.com/DerekMarcinyshyn/phpword/blob/master/samples/Sample_09_Tables.php
|
ประวัติการแก้ไข 2024-03-29 20:05:00 2024-03-29 20:07:01
|
|
|
|
Date :
2024-03-29 19:54:32 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พอไม่ใส่แท็ก php เลยอ่านแล้วแยกไม่ออกว่าอันไหนโค้ด อันไหนผลลัพธ์ เหมือนกับอ่านคำบ่นเลย 555
ต้องย้อนไปดูข้างบนภาพถึงรู้ว่าอ้อนั่นเนื้อหาใน DB ล่ะมั้ง?
|
|
|
|
|
Date :
2024-03-30 07:41:37 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|