หมวดหมู่: Uncategorized

Malware: ไวรัส (Virus) โปรแกรมร้ายที่แนบมากับไฟล์หรือโปรแกรมอื่น และจะแพร่กระจายเมื่อผู้ใช้เปิดไฟล์นั้นMalware: ไวรัส (Virus) โปรแกรมร้ายที่แนบมากับไฟล์หรือโปรแกรมอื่น และจะแพร่กระจายเมื่อผู้ใช้เปิดไฟล์นั้น

หนึ่งในปัญหาคลาสสิกที่คนทำงานกับ phpMyAdmin เจอกันเป็นประจำ คือเวลาที่เราเขียน SQL Query ซับซ้อน ไม่ว่าจะเป็นการกรองเงื่อนไขเฉพาะทาง หรือเลือกดูฟิลด์เฉพาะกลุ่ม จนได้ผลลัพธ์ออกมาเป็นรายการ (Result List) สวยงาม แต่พอคลิกปุ่ม Edit ที่แถวเพื่อแก้ข้อมูลบางจุด แล้วกดปุ่มบันทึก (Go) หน้าเว็บกลับ redirect ไปรันคำสั่ง SELECT * FROM table แบบเริ่มต้น ทำให้ Custom Query List ที่เราเพิ่งเปิดไว้หายไปต่อหน้าต่อตา ต้องเสียเวลาเขียนคำสั่งใหม่หรือไปตามคุ้ยจาก History

สาเหตุหลักมาจากกลไก Session และ State Management ของ phpMyAdmin ที่มักจะยึดบริบทของตารางหลัก (Base Table) เป็นค่าเริ่มต้นเมื่อมีการส่งฟอร์ม Update ข้ามหน้า

บทความนี้รวม 3 เทคนิคที่ช่วยให้การอัปเดตข้อมูลใน phpMyAdmin ทำงานได้ต่อเนื่องโดยไม่ต้องเสียลิสต์ผลลัพธ์เดิมไป


เปลี่ยนมาใช้ Inline Edit (ดับเบิ้ลคลิกแก้ที่ Cell โดยตรง)

วิธีนี้เป็นวิธีที่คลีนและไวที่สุด เพราะระบบจะไม่โหลดหน้าใหม่เลยแม้แต่น้อย

  • ขั้นตอน
    ในหน้าตารางผลลัพธ์ของ Custom Query ให้นำเมาส์ไปดับเบิ้ลคลิกตรงช่องข้อมูล (Cell) ที่ต้องการแก้ไขโดยตรง จากนั้นพิมพ์ข้อมูลใหม่แล้วกด Enter (หรือคลิกพื้นที่ว่างภายนอก)
  • ผลลัพธ์
    phpMyAdmin จะส่งคำขอแบบ AJAX ไปอัปเดตข้อมูลเบื้องหลัง ช่องข้อมูลจะขึ้นไฮไลต์สีเขียวชั่วขณะเพื่อยืนยันการบันทึก และรายการ Custom Query ทั้งหมดยังคงอยู่ครบถ้วนในตำแหน่งเดิม

ข้อจำกัด: เหมาะกับข้อมูลชนิดสั้น เช่น ตัวเลข สตริง หรือฟิลด์ที่ไม่ได้เป็น TEXT ยาว ๆ หรือไฟล์ไบนารี


ใช้เทคนิคเปิด Edit ในแท็บใหม่ (Open in New Tab)

หากจำเป็นต้องแก้ไขหลายคอลัมน์พร้อมกัน หรือแก้ไขฟิลด์ขนาดยาวที่ต้องใช้หน้าฟอร์มเต็ม (Full Row Edit) ให้เลี่ยงการกดปุ่ม Edit ปกติบนแท็บเดิม

  • ขั้นตอน
    กดปุ่ม Ctrl (หรือ Cmd บน Mac) ค้างไว้แล้วคลิกปุ่ม Edit (หรือคลิกขวาที่ Edit แล้วเลือก Open link in new tab)
  • การทำงาน
    หน้าแก้ไขจะแยกไปอยู่อีกแท็บหนึ่ง ให้กรอกข้อมูลและกดปุ่ม Go ตามปกติ เมื่อบันทึกเสร็จแล้วให้ปิดแท็บนั้นทิ้ง
  • ผลลัพธ์
    แท็บผลลัพธ์ Custom Query เดิมจะยังคงเปิดค้างอยู่ ไม่ถูกแทรกแซงหรือเด้งกลับไปหน้า Default หากต้องการดูข้อมูลล่าสุด เพียงกดปุ่ม Query ซ้ำ หรือรีเฟรชเฉพาะส่วน

การตั้งค่า Redirect และการดึง State คืน

หากเผลอกด Edit บนหน้าเดิมไปแล้ว สามารถจัดการได้ผ่าน 2 ตัวช่วย

  • ตั้งค่า “and then”
    ที่ด้านล่างสุดของหน้าฟอร์มแก้ไข (ข้างปุ่ม Go) ให้ตรวจสอบดรอปดาวน์ “and then” แล้วเลือกเป็น “Go back to this page” เพื่อไม่ให้ระบบพาข้ามไปยังหน้าอื่น แต่ถ้าเป็น Custom Query ที่มีคำสั่งข้ามตาราง (JOIN) phpMyAdmin อาจไม่สามารถจดจำ state เดิมได้
  • กู้คืนผ่าน Console History
    หากหน้าเด้งหลุดไปหน้า SELECT * แล้ว ให้มองไปที่แถบ Console ด้านล่างสุดของจอ phpMyAdmin คลิกเปิดขึ้นมาแล้วเลือกแท็บ History คุณจะเห็นคำสั่ง Custom Query ล่าสุดที่เพิ่งรันไป สามารถคลิกเพื่อดึงคำสั่งเดิมกลับมารันใหม่ได้ทันทีโดยไม่ต้องพิมพ์ใหม่ทั้งหมด

การปรับมาใช้ Inline Edit สำหรับงานแก้ฟิลด์เดี่ยว และใช้การ เปิดแท็บใหม่ เมื่อต้องการแก้ทั้งแถว เป็นแนวทางปฏิบัติที่ดีที่สุดในการจัดการฐานข้อมูลผ่าน phpMyAdmin ช่วยลดขั้นตอนซ้ำซ้อน และประหยัดเวลาการทำงานได้อย่างชัดเจน