GORAGOD.com

freelance, web developer, web designer, hosting, domain name

แนวทางสร้าง PDF

สอบถามความคิดเห็นครับ....

สมมติว่า --- มีชุดข้อมูลประมาณ "ข้อมูลทั่วไปบุคคล" (ประมาณ 15-20 ฟิลดิ์) เพื่อส่งไปสร้างไฟล์ PDF โดยที่ปกติก็จะมีหน้าดูข้อมูลก่อนที่จะสร้าง PDF อยู่แล้ว (query เพื่อตรวจสอบหรือเพื่อแก้ไขบางข้อมูลอยู่แล้ว)



              อยากทราบว่าเราควรจะใช้วิธีไหน ระหว่าง....

              1. จะส่งตัวแปรบางตัวไป query ที่ไฟล์ php สำหรับสร้าง PDF ซึ่ง หมายความว่าต้อง connect และ query ทุกครั้งที่สร้าง PDF (ส่วนตัวคิดว่าแบบนี้จะทำให้ใช้ฐานข้อมูลมากเกินความจำเป็นหรือเปล่า)

              2. ส่งข้อมูลที่ query เรียบร้อยแล้ว -- หมายถึง ส่งข้อมูลจาก element ที่เกิดขึ้นจากหน้าดูข้อมูลก่อนสร้าง PDF ซึ่งจะต้องส่งข้อมูลทั้ง 15-20 ฟิลดิ์นั้นไปเลยทั้งหมดผ่าน Ajax (ส่วนตัวคิดว่าแบบนี้น่าจะมีผลกับฐานข้อมูลน้อยกว่า)



ลักษณะงานเป็นการทำงานภายในองค์กรเท่านั้น เพราะฉะนั้นเรื่อง trafic ไม่มีปัญหา จากคำถามเป็นตัวอย่างเท่านั้น เพราะในงานจริงจะมีชุดข้อมูลที่ต้องส่งไปสร้าง PDF หลายชุด ประกอบกับฐานข้อมูลจะมีการประมวลผลในงานอื่นๆอยู่เกือบตลอดเวลา ผมแยก Process ของ web service กับ Database ออกคนละเครื่องอยู่แล้ว
08 ก.ย. 2553 4 1,618

จากคำถาม มี 2 ข้อที่เป็นปัจจัยที่ควรคำนึงถึง (ปัญหาโดยทั่วไปที่อาจจะเกิด)

1.ส่ง id เพื่อ query ข้อมูลอีกครั้ง

2.ส่งข้อมูลไปเพื่อการทำงานต่อเลย



ข้อแรก มีข้อเสียที่สำคัญก็คือ query จำนวนมากขึ้น อันเนื่องมาจากต้อง query ข้อมูลเพื่อไปสร้างเอกสาร แต่วิธีนี้มีข้อดีในเรื่องความปลอดภัยและความทันสมัยครับ เพราะข้อมูลต่างๆถูกอ่านมาจากฐานข้อมูลเสมอ ดังนั้นหากข้อมูลนั้นๆเป็นข้อมูลที่ต้องการความปลอดภัยสูง หรือ ข้อมูลที่ต้องมีการอัปเดทอยู่ตลอดเวลา (จากผู้อื่น) ก็ควรใช้วิธีอ่านจากฐานข้อมูลเสมอ



ข้อที่สอง จุดประสงค์ก็เพื่อลดการ query ข้อดีของมันก็คือลด query นี่แหละ แต่ข้อเสียก็มี เช่น ข้อมูลอาจจสูญหายได้ อันเนื่องมาจากขีดจำกัดของปริมาณการรับส่งข้อมูล ทำให้ได้ข้อมูลไปถึงปลายทางไม่ครบถ้วน หากข้อมูลมีปริมาณมาก และ การเสียเวลาในช่วงการส่ง อันเนื่องมาจาก ข้อมูลจะถูกส่งด้วยปริมาณอันจำกัดจำนวนหนึ่งในแต่ละครั้ง (ข้อมูลการจราจรทางคอมพิวเตอร์จะถูกส่งโดยแบ่งออกเป็น package)ซึ่งถ้าปริมาณ trafic มีเป็นจำนวนมาก วิธีนี้อาจไม่คุ้มค่าครับ



การจะเลือกใช้วิธีใดก็ขึ้นกับลักษณะของงานแหละครับ ลองพิจารณาให้เหมาะสมละกัน
#1


ขอบพระคุณมากครับ...

      จากคำตอบของคุณ gOragod ผมคงคงต้องใช้ทั้งสองวิธีตามแต่ละงานดีกว่า เพราะจากข้อดีข้อเสียทั้งหมดคงจะละเลยไม่ได้



งั้นขอถามเพิ่มเติมนะครับ...

       ในฟิลดิ์ข้อมูลบางครั้งจะมีเครื่องหมายที่ใช้แทนสัญลักษณ์ "inch" (double quote) เวลาที่นำมาใส่ไว้ในตัวแปรของ php ทำให้บางครั้งมันมองเป็นเครื่องหมายปิดข้อความ ทำให้ข้อมูลที่แสดงออกมาขาดหายไปบางส่วน ถ้าเราไม่ใช้ string replace จะมีวิธีอื่นอีกหรือไม่ครับ


#2

อ้างอิงจาก ความคิดเห็น #2ในฟิลดิ์ข้อมูลบางครั้งจะมีเครื่องหมายที่ใช้แทนสัญลักษณ์ "inch" (double quote) เวลาที่นำมาใส่ไว้ในตัวแปรของ php ทำให้บางครั้งมันมองเป็นเครื่องหมายปิดข้อความ ทำให้ข้อมูลที่แสดงออกมาขาดหายไปบางส่วน ถ้าเราไม่ใช้ string replace จะมีวิธีอื่นอีกหรือไม่ครับ


มี 2 วิธีหลักๆ ขึ้นกับสถาณการณ์นะครับ



1. เติม \ ใส่ลงไป แค่นี้ก็ไม่มีปัญหาต่อตัวแปรแล้ว

2. แปลงเป็นตัวอักษรของ HTML &quote; สำหรับการแสดงผลที่เป็น HTML ครับ



ปกติแล้วการเปลี่ยนข้อความที่เป็นปัญหาให้เป็นสัญลักษณ์อื่นก็คุ้มค่าครับ เพราะบางครั้งถ้าเป้นข้อมูลที่เราควบคุมไม่ได้ว่า USER จะกรอกอะไรมา เราก็จำเป็นต้องความคุมตัวอักษรเหล่านั้นด้วยตัวเองครับ



ปล. ปกติที่ผมใช้บ่อยๆ ก็คือการเข้ารหัสครับ เช่น เข้าด้วย rawurlencode() ถอดด้วย rawurldecode() เป็นต้น แต่ข้อเสียก็คือการทำงานที่ซ้ำซ้อน เราะต้องเข้าและถอดตลอดเวลา แต่ถ้าการป้องกันหรือการตรวจหามันยุ่งยากกว่า การแปลงมันไปเลยก็ง่ายดีครับ 
#3

ขอบพระคุณมากครับ... (ตอนนี้นึกคำถามไม่ออก เท่านี้ก่อนละกัน)
#4
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M
^