ระบบ eDMS ถ้าจะตัดการเช็คไฟล์ upload

ระบบ eDMS ถ้าจะตัดการเช็คไฟล์ upload ว่าไม่ต้อง upload ไฟล์ก็บันทึกได้ นี่ต้องแก้ยังไงครับ
ผมลองทำที่ไฟล์ write.php โดยตัดบรรทัด 152-154 ออก ผลโปรแกรมให้บันทึกได้ แต่รายการเอกสารที่บันทึกเข้าไป ขึ้นเฉพาะที่หน้าสำหรับ "อัปโหลด" แต่หน้าแสดงหน้ารายการไม่ขึ้น ใน Database ก็บันทึกนะ ก็เลยอยากสอบถามว่าอันนี้ต้องทำตรงไหนอีกครับ
07 เม.ย. 2564 49 1,427

อาจจะเป็นเพราะไม่มีรายชื่อไฟล์ที่บันทึก ทำให้มัน Query ออกมาไม่ได้
ก็ไปหาดูก่อนครับว่ามันหน้าไหน แล้วก็ไปจัดการกับ Query เอาส่วนที่อ่านไฟล์ออก ไม่แน่ใจเหมือนกันว่าจะต้องแก้ไขเยอะหรือเปล่า
ปล. eDms ไม่อัปโหลดไฟล์ แล้วจะให้ user มาทำอะไรในระบบหนอ
#1

คือว่าบางบทความอาจจะมีแค่เป็นลิ้งค์ออกไปข้างนอกไม่มีไฟล์สำหรับ Download น่ะครับ
โดยผมเข้าไปแก้ที่ไฟล์ \modules\dms\model\write.php ตรงบรรทัดที่ 152-154 นี้เอาออกทั้งหมด ตามนี้
if ($index->id == 0 && empty($files)) {
// ใหม่ ไม่ได้เลือกไฟล์
$ret['ret_file'] = 'Please browse file';
ผลก็เป็นตามกระทู้ คือ บันทึกได้โดยไม่ต้องใส่ไฟล์ Download และ ก็เขียนลง Table edms_dms ได้ด้วย ซึ่งในหน้า อัปโหลด มีแต่หน้า รายการ ไม่ขึ้น ก็เลยขอสอบถามว่าต้องแก้ส่วนไหนอีกครับ
#2

ผมอัปเดทให้แล้ว (แต่ยังไม่ได้ปล่อยให้ดาวน์โหลด) ลองทดสอบที บนเว็บตัวอย่าง
#3

ขอบคุณมากครับ ลองเข้าไปดูแล้วเยี่ยมเลยครับ เป็นประโยชน์มาก ผมขอโอนสนับสนุนเวปไซต์แล้วครับตอนบ่ายวันนี้ ยังไงขอไฟล์ update ด้วยครับอาจารย์
#4

ดาวน์โหลดจาก github ได้เลยครับ ผมอัปไปให้แล้ว
#5

ขอบคุณครับ
#6

ถ้าผมได้มีการแก้ไขไปแล้วบางส่วน พอมีแนวทางที่ไม่ต้องลงใหม่ทั้งหมดไหมครับ
#7

ใช้พวกโปรแกรมเปรียบเทียบไฟล์ครับ ดูว่ามีอะไรเปลี่ยนแปลงบ้าง แล้วตัดสินใจเอาว่าจะเก็บอะไรไว้
หรือเริ่มต้นดัดแปลงใหม่ (น่าจะง่ายกว่า)
มีการเปลี่ยนแปลงฐานข้อมูลอยู่ด้วย การดัดแปลงอาจต้องทำด้วยความระมัดระวัง สำคัญที่ต้องสำรองไฟล์และฐานข้อมูลไว้ก่อนเสมอครับ
#8

คงลงใหม่แล้วค่อยแก้ตาม ถ้าติดอะไรจะขอสอบถามเพิ่มเติม ขอบคุณครับ
#9

ผมได้ลงใหม่แล้วครับ แต่พอจะไปไล่แก้ให้เหมือนที่เพิ่มเติมมาก่อนหน้านี้มันไม่ออกน่ะครับ อย่างแรก ผมจะเอาส่วนที่เป็นรายละเอียดของเอกสารมาแสดงในหน้ารายการไม่ได้ โดยเข้าไปแก้ที่ไฟล์ dms\models\index.php ในบรรทัดที่ 73 ในส่วนของ Query (เพิ่มในส่วนรายละเอียด เหมือนหน้า View) อย่างที่ทำได้เหมือนเวอร์ชั่นเก่าไม่ได้ ขอคำแนะนำได้ไหมครับ
รบกวนอีกข้อครับ ขอคำแนะนำถ้าจะค้นหาในส่วนของรายละเอียดเอกสารด้วย ต้องเพิ่มตรงไหนครับอาจารย์
#10

มันสามารถทำได้ด้วยวิธีเดิมนะครับ ไม่มีอะไรเปลี่ยนแปลง ผมแนะนำให้ตรวจสอบดูดีๆ ว่าหลงลืมอะไรหรือไปหรือเปล่า
#11

ผมลองทุกอย่างแล้วครับ ของเดิมเพิ่มที่ไฟล์เดียวเท่านั้นเองครับ แค่เพิ่ม 'A.detail' ในส่วนของ Query อันเดิมมันก็ดึง field detail ของ Table dms ออกมาได้ แต่อันนี้พอเพิ่มเข้าไป หน้ารายการไม่แสดงเลย จะกลับไปหน้า Dashboard อย่างเดียว จนปัญญาจริงๆครับ หาวิธีแก้มาสองวันแล้ว ช่วยชี้ทางสว่างให้ด้วยครับ แล้วให้มันค้นหาจาก detail นี้ได้ด้วย ได้โปรดช่วยด้วยครับ
ขอบคุณครับ
#12

ใช่ครับมันก็ทำแค่นั้นแหละ เพิ่มคอลัมน์ที่ต้องการลงไปเท่านั้น ไม่ได้มีอะไรซับซ้อน https://github.com/...models/index.php#L73
ส่วนการค้นหา เพิ่มที่บรรทัดนี้ https://github.com/...models/index.php#L70
#13

ระบบ eDMS ถ้าจะตัดการเช็คไฟล์ upload
ขอแก้ไข : ต้องขอโทษอาจาย์ด้วยพอดีไม่รู้ต้องไปเพิ่มสิทธิ์ให้กับ User ด้วย พอดีเวอร์ชั่นแรกเข้า User demo ได้เลย จึงสับสนนิดหน่อยครับ
#14

ส่วนที่อาจารย์แนะนำล่าสุด ผมก็ลองทำแล้วนะครับ ในส่วน
https://github.com/...models/index.php#L73
ผมเพิ่มตามเฉพาะ A.detail เข้าไปใน Query ตามนี้ครับ
->select(Sql::IFNULL('F.id', 0, 'id'), 'A.id dms_id', 'A.create_date', 'A.document_no', 'A.detail', 'A.topic', 'F.topic file_name', 'F.ext', 'A.department', 'A.cabinet', 'W.downloads', 'A.url')
ผลก็คือ จะกลับไปหน้า Dashboard และ เข้ามาหน้ารายการไม่ได้อีกเลยครับ

ในส่วนการค้นหา
https://github.com/...models/index.php#L70
ผมก็เพิ่มในส่วนของ A.detail ตามนี้
$where[] = Sql::create("(A.`detail` LIKE '%$params[search]%' OR A.`document_no` LIKE '%$params[search]%' OR A.`topic` LIKE '%$params[search]%' OR F.`topic` LIKE '%$params[search]%')");
ผลก็คือ การค้นหาจะไม่ทำงานเลย ไม่ว่าจะพิมพ์ถูกหรือผิดอะไรลงไป หน้าจอก็จะอยู่ที่หน้าแสดงรายการทั้งหมดเหมือนเดิม
ขอคำแนะนำด้วยครับอาจารย์
** ที่แก้สองส่วนนี้ ทำคนละครั้งนะครับ ไม่ได้ทำพร้อมกัน **
#15

ต้องเปิด DEBUG แล้วดู error เอา ข้อมูลแค่นี้ช่วยอะไรไม่ได้เลย
error สามารถดูใน console ของบราวเซอร์ได้ หรือไม่ก็คลิกขวาเพื่อเปิดหน้าเว็บใน tab ใหม่ อาจจะเห็น error
#16

อาจารย์ครับผมลองทำไปหลายวิธีแล้วครับ ดู error ที่ console ของบราวเซอร์ก็ไม่มีแจ้งอะไร คิดไม่ออกจริงๆแล้วครับ ผมได้แนบลิ้งค์มาให้ดูตามนี้ https://github.com/...f6a7086280/error#L73
โดยเพิ่ม A.detail เข้าไปใน query เป็นตัวแรก เท่านั้น ซึ่งผลก็เป็นตามที่แจ้ง คือ ออกจากหน้ารายการ ไปหน้า dashboard แล้วกลับเข้ามาไม่ได้อีก อยากให้อาจารย์ช่วยเขียนให้ดูได้ไหมครับ ผมทำไม่ได้แล้วจริงๆ ยินดีครับถ้าต้องมีค่าใช้จ่ายเพิ่มเติม
สิ่งที่ต้องการทำน่ะครับ
- ดึงส่วน detail ของตาราง edms_dms ออกมาแสดง
- ให้ค้นหาจากส่วน detail นี้ได้ด้วย
ขอบคุณครับ
#17

จริงๆ มันต้องมี error แต่หาไม่เจอเองแหละ (อยู่ใน console หรือ คลิกขวา เปิดหน้าเว็บ หรือ ปิด Javascript แล้วเปิดหน้าเว็บ อยากให้หัดดู error ใน console มากกว่า เพราะมันจะดูได้ทุกจุด 2 วิธีหลังบางเคสก็อาจจะไม่เห็น)

ลองเพิ่ม A.detail ลงในบรรทัด 44 ดูครับ ต่อจาก A.topic เนื่องจาก A.detail ไม่ได้เอาออกมาตั้งแต่ subquery
#18

อ้างอิงจาก ความคิดเห็น #18จริงๆ มันต้องมี error แต่หาไม่เจอเองแหละ (อยู่ใน console หรือ คลิกขวา เปิดหน้าเว็บ หรือ ปิด Javascript แล้วเปิดหน้าเว็บ อยากให้หัดดู error ใน console มากกว่า เพราะมันจะดูได้ทุกจุด 2 วิธีหลังบางเคสก็อาจจะไม่เห็น)

ลองเพิ่ม A.detail ลงในบรรทัด 44 ดูครับ ต่อจาก A.topic เนื่องจาก A.detail ไม่ได้เอาออกมาตั้งแต่ subquery


ได้แล้วครับ ผมตกบรรทัดนี้ไปได้ๆไง ก็ลองใส่ไปหลายที่แล้วก็ไม่ได้ ผมขอสนับสนุนเวปไซต์ไปเพิ่มเติมแล้วนะครับ ขอบคุณมากครับ
#19

อ้างอิงจาก ความคิดเห็น #19ผมขอสนับสนุนเวปไซต์ไปเพิ่มเติมแล้วนะครับ

ขอบคุณมากครับ
#20

ขอรบกวนอาจารย์อีก 2 ข้อครับ
1. ถ้าจะกำหนดความกว้างของคอลัมน์ในหน้ารายการ เพื่อตัดคำที่ยาวๆออก อย่างเช่น ชื่อเรื่อง หรือ พวก detail ที่มันยาวๆ แบบไม่ต้องแสดงทั้งหมด ต้องทำตรงไหนครับ ใน Style.css ก็หาไม่เจอ ขอคำแนะนำด้วยครับ
2. พอดีผมได้สร้างคอลัมน์เพิ่มเติมในตาราง edms_dms เพื่อเพิ่มรายละเอียดของเนื้อหามา 2-3 คอลัมน์ พอเป็นแบบนี้แล้ว ผมก็ต้องสร้าง Drop down เพื่อเลือกที่จะค้นหาตามเฉพาะ คอลัมน์นั้นๆ อย่างเช่น ชื่อเรื่อง, detail และ คอลัมน์ที่สร้างขึ้นมาใหม่ ขอคำแนะนำโค้ด หรือตัวอย่างได้ไหมครับ
ขอบคุณครับ
#21

1. ต้องดำเนินการด้วยตัวเองโดย CSS เป็นกรณีไป ครับ สามารถสร้าง CSS ใหม่ได้เลย (ไม่มีของเดิมให้แก้หรอก) จริงๆ มี class cuttext ให้ใช้ สามารถใส่เพิ่มลงใน table ได้
2. ตัวอย่างมีอยู่แล้วในโค้ดครับ ทำเหมือนกันกับ select ตัวอื่นๆเลย (แนะนำให้ก๊อบโค้ด select มาใช้เลย)
#22

อ้างอิงจาก ความคิดเห็น #221. ต้องดำเนินการด้วยตัวเองโดย CSS เป็นกรณีไป ครับ สามารถสร้าง CSS ใหม่ได้เลย (ไม่มีของเดิมให้แก้หรอก) จริงๆ มี class cuttext ให้ใช้ สามารถใส่เพิ่มลงใน table ได้
2. ตัวอย่างมีอยู่แล้วในโค้ดครับ ทำเหมือนกันกับ select ตัวอื่นๆเลย (แนะนำให้ก๊อบโค้ด select มาใช้เลย)


ข้อ 1. ขออาจารย์ทำเป็นตัวอย่างสักหนึ่งคอลัมน์ได้ไหมครับ อย่างเช่น แถวชื่อเรื่อง ผมไม่รู้จริงๆว่าต้องไปเขียนตรงไหนยังไง ลองดูแล้วไม่ไหวจริงๆครับ.
ขอบคุณครับ
#23

https://github.com/.../views/index.php#L96
'topic' => array(
'text' => '{LNG_Document title}',
'class' => 'cuttext'
),
#24

อาจจะสำเร็จ หรือมีปัญหาอื่นหรือไม่ก็ได้นะครับ เนื่องจากมันอาจจะต้องมี CSS อื่นๆประกอบ ให้ต้องพิจารณาเป็นกรณีไป
#25

อ้างอิงจาก ความคิดเห็น #24https://github.com/goragod/edms/blob/main/modules/dms/views/index.php#L96
'topic' => array(
'text' => '{LNG_Document title}',
'class' => 'cuttext'
),


อันนี้ลองแล้วไม่ได้ครับอาจารย์ไม่มีผลอะไร ผมได้ลองหลายแบบแล้วก็ไม่ได้ ขอตัวอย่างเป็นวิทยาทานได้ไหมครับอาจารย์
ขอบคุณครับ.
#26

ไม่แปลกครับ มันอาจต้องทำอย่างอื่นอีกพอสมควร เพื่อให้ได้ผลตามต้องการ
ลองศึกษาอันนี้เพิ่มเติม
https://goragod.com/...A7%E0%B8%A2_css.html
หรือจะใช้วิธีตัดสตริงค์ด้วย PHP แทนก็ได้นะ แต่มันจะไม่ค่อยยืดหยุ่น

ส่วนตัว ผมจะไม่แสดงข้อความอะไรลงในตารางที่มันยาว เพราะมันควบคุมค่อนข้างยาก
#27

ตัวที่อาจารย์ให้ศึกษา ผมลองแล้วได้ผลดีเลยครับ คงจะดีกว่าใช้ PHP ตัดคำ แต่ผมก็ไม่รู้จริงๆว่าต้องไปเขียนค่า CSS ไว้ตรงไหน และ ตอนไปใข้วางรูปแบบยังไงในไฟล์ ก็ลองหาตัวอย่างในเวป ทำหลายวิธีตามที่พอคิดได้ก็ไม่ได้ครับ รบกวนอาจารย์ช่วยทำเป็นตัวอย่างสักแถวได้ไหมครับ
ทำไม่ได้แล้วจริงๆ

ขอบคุณครับ.
#28

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

สิ่งที่พอบอกได้ คือใช้ความรู้ CSS ในการแก้ปัญหาครับ เช่น ใส่ class ลงในจุดที่ต้องการ (เหมือนกับที่ให้เพิ่ม cuttext) แล้วเขียน CSS เพิ่มเพื่อระบุไปยังจุดที่ต้องการจุดเดียว โดยใช้ CSS ตามบทความ (เขียนอีกที ผมก็เขียนเหมือนในบทความแหละ)

หมายเหตุ อาจต้องดำเนินการหลายอย่างเพื่อให้บรรลุผล ผมเลยไม่สามารถเขียนตัวอย่างให้ได้ แนะนำให้ทำความเข้าใจกับโค้ด แล้วนำไปประยุกต์ใช้เอา
#29

อ้างอิงจาก ความคิดเห็น #21ขอรบกวนอาจารย์อีก 2 ข้อครับ
1. ถ้าจะกำหนดความกว้างของคอลัมน์ในหน้ารายการ เพื่อตัดคำที่ยาวๆออก อย่างเช่น ชื่อเรื่อง หรือ พวก detail ที่มันยาวๆ แบบไม่ต้องแสดงทั้งหมด ต้องทำตรงไหนครับ ใน Style.css ก็หาไม่เจอ ขอคำแนะนำด้วยครับ
2. พอดีผมได้สร้างคอลัมน์เพิ่มเติมในตาราง edms_dms เพื่อเพิ่มรายละเอียดของเนื้อหามา 2-3 คอลัมน์ พอเป็นแบบนี้แล้ว ผมก็ต้องสร้าง Drop down เพื่อเลือกที่จะค้นหาตามเฉพาะ คอลัมน์นั้นๆ อย่างเช่น ชื่อเรื่อง, detail และ คอลัมน์ที่สร้างขึ้นมาใหม่ ขอคำแนะนำโค้ด หรือตัวอย่างได้ไหมครับ
ขอบคุณครับ


สืบเนื่องจากคำถาม ข้อที่ 2. ผมก็ได้ลองทำตามอาจารย์แนะนำแล้วยังไม่เป็นผล คงเป็นเพราะที่ผมเอา select มาไม่ถูกอัน หรือ วางไม่ถูกที่ ขอความกรุณาอาจารย์ช่วยเหลืออีกนิดนะครับ ไม่รู้จะเอาอะไร ไปวางตรงไหน ถึงจะถูก เหลืออีกนิดก็จะสำเร็จแล้วครับ ขอบคุณมากครับ.
#30

1. ใช้ DevTool ของ Browser ในการค้นหาสิครับ ว่าจะแก้ไขอะไร หาเจอแล้วก็เขียน CSS เฉพาะจุดนั้นควบคุมเอา ซึ่งอาจต้องใช้ความรู้ CSS ขั้นสูงสักหน่อย ผมไม่สามารถเขียนให้ได้ เพราะต้องเชียนเป็นกรณีไป คงไม่สะดวกที่จะเขียนให้
2. ถ้าหมายถึงจะค้นหาเฉพาะคอลัมน์ที่เลือกด้วยตัวเอง (มีตัวเลือกคอลัมน์ที่จะค้นหา และช่อง search) ถามว่าทำได้หรือไม่ คำตอบคือได้ แต่อาจจะยุ่งยากมากๆเลย หลักการก็คือ สร้าง filter (ตัวเลือกที่ส่วนหัวของตาราง) ตามปกติ และทำการรับค่าตัวเลือกมา แล้วส่งให้ Model ไปเขียน Query เพิ่มเติมเอา
#31

https://github.com/.../views/files.php#L69
headers หมายถึงส่วนหัวของตาราง (th) สามารถระบุ class หรือ css ได้เหมือนการระบุใน HTML ถ้าไม่มีก็เขียนเพิ่มเอา (มีตัวอย่างมากมายอยู่ในโค้ด)
https://github.com/.../views/files.php#L86
cols หมายถึงส่วน td ของตาราง สามารถทำได้เหมือนกัน
ส่วนข้อ 2 สร้างฟิลเตอร์เหมือนอันนี้
https://github.com/.../views/files.php#L86
เขียนคำสั่งรับค่าแล้วส่งไปที่ Model
https://github.com/...views/member.php#L51
ที่ Model ก็เขียน Query ที่ต้องการเอา
#32

ขอบคุณมากครับสำหรับคำแนะนำ ผมจะลองศึกษาดูครับ
- ขออีกหนึ่งคำถามครับ ว่าตรงไหนที่เป็นตัวกำหนดความกว้างของคอลัมน์ในแต่ละคอลัมน์ครับ

ขอบคุณมากครับ.
#33

อ้างอิงจาก ความคิดเห็น #33ขออีกหนึ่งคำถามครับ ว่าตรงไหนที่เป็นตัวกำหนดความกว้างของคอลัมน์ในแต่ละคอลัมน์ครับ

ปกติแล้วไม่มีครับ ถ้าอยากจะกำหนดให้ใช้ CSS ในการจัดการ เช่น
1. ใส่ class ให้กับ header ของตาราง
2. เขียน CSS กำหนดความกว้างให้ class ซึ่งโดยปกติระบบจะมี width10 width20 - width90 และ fullwidth ให้ใช้
#34

ขอบคุณมากครับอาจารย์.

- ขอคำแนะนำครับอาจารย์ ถ้าผมจะเอาชื่อแผนกของเอกสารนั้นๆ ไปแสดงในหน้าป๊อบอัพของปุ่มรายละเอียด (view.php) ต้องทำยังไงครับ พอดีลองมาหลายวิธีก็ไม่ได้ผลครับ
ขอบคุณครับ.
#35

ง่ายสุดก็ Join ข้อมูลออกมาเลยครับ
#36

ครับจะลองทำดู แต่ขอความช่วยเหลืออีกนิดนะครับ ผมพยายามหาวิธีที่จะเขียนเข้าไปในไฟล์ (...dms\view\index.php) เพื่อจะ Link ไปหาไฟล์ css โดยได้หาข้อมูลจากเวป และได้ลองมาหลายรูปแบบแล้วก็ไม่ได้ ผมก็รบกวนอาจารย์มากแล้วก็เกรงใจ แต่อันนี้จนปัญญาจริงๆ ขออาจารย์ช่วยอีกทีนะครับ ไม่ทราบว่ามันต้องเขียนรูปแบบยังไง.

ขอบคุณครับ
#37

อ้างอิงจาก ความคิดเห็น #37ผมพยายามหาวิธีที่จะเขียนเข้าไปในไฟล์ (...dms\view\index.php) เพื่อจะ Link ไปหาไฟล์ css โดยได้หาข้อมูลจากเวป

ไม่เข้าใจคำถามครับ
#38

เดานะครับ
https://github.com/...views/setup.php#L130
หรือ
https://github.com/...iews/member.php#L105 (หน้ารายชื่อสมาชิก)
ลองเขียนคำสั่ง CSS ลงใน skin/defult/style.css ดู
.center {
color: red;
}
#39

อ้างอิงจาก ความคิดเห็น #39เดานะครับ
https://github.com/...views/setup.php#L130
หรือ
https://github.com/...iews/member.php#L105 (หน้ารายชื่อสมาชิก)
ลองเขียนคำสั่ง CSS ลงใน skin/defult/style.css ดู
.center {
color: red;
}

ลองเขียนลงไปกับทุกไฟล์ css ในโปรเจคแล้ว ไม่มีผลอะไรเลยครับอาจารย์ จุดประสงค์ก็คล้ายกับที่อาจารย์ยกตัวอย่างมา 2 ไฟล์นั้น คือ จะไปหาจุดที่โค๊ดนั้นอ้างอิงไปหา อย่างเช่น 'class' => 'center', นี่คือ ไปเรียกหา class ของ css ที่ชื่อ center ใช่ไหมครับ ผมก็จะไปหาไฟล์ css ที่มี class นี้ เพื่อเขียนเพิ่มเติมแต่หาไม่เจอ และ ลองเขียนลงไปตรงๆที่ไฟล์ php เลย อย่างเช่น <?echo "<head><link rel="stylesheet" href="yearpicker.css"></head>" ?> ตามที่เค้าแนะนำมา ก็ไม่ได้น่ะครับอาจารย์ มีวิธีอื่นอีกไหมครับ

ขอบคุณครับ.
#40

ถ้าจะเพิ่มคำสั่ง CSS สามารถเพิ่มได้ที่ skin/default/style.css
ทำตามกฏของ CSS เลยครับ ไม่ต้องไปหาต้นทางว่ามันอยู่ที่ไหน สามารถเขียนใหม่ที่ท้ายๆไฟล์ได้เลย
#41

อ้างอิงจาก ความคิดเห็น #36ง่ายสุดก็ Join ข้อมูลออกมาเลยครับ

เรียนอาจารย์ เรื่อง css ผมทำได้แล้วครับ ขอบคุณมากครับ แต่เรื่องที่ให้ Join ข้อมูล เพื่อดึงข้อมูลของแผนก มาแสดงในหน้ารายละเอียดของเอกสาร (icon สีเหลือง) ผมได้ลอง Join หลายๆแบบแล้วไม่มาเลยครับ พยายามมาหลายวันทั้งลองศึกษาคำสั่ง sql ดูในหลายๆที่ก็ทำไม่ได้ ผมไม่สามารถจริงๆ ขอรบกวนอาจารย์แสดงให้ดูได้ไหมครับ
ขอบคุณครับ.
#42

ตัวอย่างการ JOIN https://github.com/...odels/report.php#L56
#43

อ้างอิงจาก ความคิดเห็น #43ตัวอย่างการ JOIN https://github.com/...odels/report.php#L56


อาจารย์ครับผมได้ลองทำแล้ว แต่ตรง department มันจะมาแค่แผนกเดียว ถ้าเอกสารตัวนั้นอยู่มากกว่า 1 แผนก มันจะเอามาแสดงได้แค่แผนกเดียวตามโค๊ดด้านล่างนี้ (ไฟล์ ../dms/models/view.php บรรทัด 32-37) รบกวนอาจารย์ช่วยแนะนำด้วยนะครับ ขอบคุณครับ.

return static::createQuery()
->from('dms A')
->join('dms_meta N', 'LEFT', array('N.dms_id', 'A.id'))
->join('category C', 'LEFT', array(array('C.category_id', 'N.value'), array('C.type', 'N.type')))
->where(array('A.id', $id))
->first('A.id', 'A.document_no', 'A.topic', 'A.member_id', 'A.create_date', 'A.detail', 'A.url', 'A.agency', 'A.author', 'A.syear', 'A.subagen', 'A.group', 'C.topic dept');
#44

งงมาก ไม่รู้จะทำอะไร ตัวอย่างหน้าที่อ่านแผนกออกมาได้ก็หน้าอัปโหลดเอกสาร https://github.com/...models/write.php#L37
#45

อ้างอิงจาก ความคิดเห็น #45งงมาก ไม่รู้จะทำอะไร ตัวอย่างหน้าที่อ่านแผนกออกมาได้ก็หน้าอัปโหลดเอกสาร https://github.com/...models/write.php#L37


อาจารย์ครับ คือ หมายถึงเอาโค๊ดจากไฟล์ write.php ตั้งแต่บรรทัดที่ 37-63 ไปวางแทนโค๊ดของไฟล์ view.php ตั้งแต่บรรทัดที่ 32-36 เลยหรือเปล่าครับ ลองทำแล้ว พอคลิกตรงรายละเอียดแล้วจะนิ่งไม่ไปไหนเลย รบกวนอาจารย์ช่วยหน่อยนะครับ ผมไม่รู้จริงๆว่าต้องวางโค๊ดยังไงให้มันแสดงแผนกได้ ลองหลายรูปแบบแล้วก็นิ่งสนิท ขอบคุณครับ
#46

ไม่ใช่ครับ ผมให้ดูตัวอย่างการ query แล้วนำไปประยุกต์ใช้ หรืออาจใช้วิธีอื่นๆก็ได้เช่น query ข้อมูลออกมาชั้นหนึ่งแล้วค่อยไป query ข้อมูลหมวดหมู่อีกทีก็ได้
จริงๆจะทำได้ก็ต้องอาศัยเข้าใจวิธีการ Query ข้อมูล รวมถึงเข้าใจการทำงานของโค้ดก่อนครับ ซึ่งถ้าเข้าใจหลักการมันก็จะง่ายขึ้น
สิ่งที่ต้องทำจริงๆ เพื่อเอาแผนกออกมาคือการ JOIN แผนกเข้าไปยังตารางหลัก แต่เนื่องจาก หมวดหมู่มีได้หลายอัน เลยต้องใช้ GROUP_CONCAT ช่วยในการเอาข้อมูลออกมา
ซึ่งตัวอย่างวิธีใช้คำสั่งมีอยู่ในลิงค์ที่ส่งไป
#47

เดี๋ยวขอลองทำดูครับ ขอบคุณครับ.
#48

ระบบ eDMS ถ้าจะตัดการเช็คไฟล์ upload
เมนูรายการจัดเก็บเอกสาร รายการ อัปโหลด 2 เมนูนี้ กดแล้วไม่มีอะไรเกิดขึ้น ต้องไปแก้ไขยังไงครับ
#49
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg, png ขนาดไฟล์ไม่เกิน 2M