หัดเขียนโค้ดเล่น โดยใช้วิชามึน



ผมขอทราบวิธีคิดหน่อยครับ คือผมมีปัญหาดังนี้

ฐานข้อมูลชื่อ company มีตารางอยู่ 3 ตาราง



ตารางที่ 1 ชื่อ ตาราง staff มีคีย์หลักเป็น staff_id ซึ่ง ID จะเป็นประมาณนี้ N8Q6bz1hT ไว้เก็บข้อมูลพนักงาน

เช่น ชื่อ นามสกุล ค่าแรงต่อวัน



ตารางที่ 2 ชื่อ ตาราง staff_day_work มีคีย์หลักเป็น report_id

มี field ชื่อ report_id staff_name

ไว้เก็บชื่อของพนักงานที่ทำงานในวันนั้น สมมุติว่าพนักงานทำงานรายวัน วันไหนไม่ทำงานก็คือไม่มีการจ่ายเงิน



ตารางที่ 3 ชื่อ ตาราง dayli_report มีคีย์หลักเป็น report_id

ตารางนี้ไว้เก็บรายการต่างๆ ที่เกิดขึ้น เช่น รายจ่ายค่ารถ จ่ายค่ากับข้าว

อยากให้ข้อมูลในตารางนี้สัมพันธ์กับ staff_day_work กล่าวคือในหนึ่งวันต้องมีคนทำงานมากกว่า 1 คน

จึงได้แยกชื่อพนักงานไว้ในอีกตาราง



คราวนี้มาถึงฟอร์มบันทึกข้อมูล ก่อนที่จะโหลดฟอร์มขึ้นมา ผมได้ทำการ query ข้อมูล 1 ครั้งเพื่อที่จะเอาข้อมูลจากตาราง

Staff ออกมาโดยดึงเอาชื่อของพนักงานออกมา ในฟอร์มนั้นสิ่งที่จะมีค่าเดียวเช่น ชื่อผู้บันทึก วันที่บันทึก ค่ารถ ค่ากับข้าว

เหล่านี้มันมีค่าเดียวผมเลยเอามันไว้นอก foreach ผมใช้ foreach loop เอาค่า staff_id staff_name

ไว้ใน checkbox

foreach($all_staff->result() as $row){

        ?>

        <input type='checkbox' name='staff_name[]'

        value='<?php echo $row->staff_name; ?>
' >

        <?php echo $row->staff_name;

        //ในฟอร์มมี checkbox และส่งชื่อพนักงานออกมาเฉพาะ checkbox ที่ถูกเลือก ?>

        <?php

}



ผมเอาข้อมูล บันทึกในตาราง dayli_report

ส่วน staff_day_work นั้นต้องการชื่อพนักงานและ id ของวันที่บันทึก

ผมไม่มีปัญหาในขั้นตอนนี้ แต่.....ถ้าสมมุติว่าผมผิดพลาด หมายถึงว่า พนักงานที่มีชื่อในตาราง staff_day_work ในวันนั้น

เค้าไม่ได้มาทำงาน แต่คนที่เค้ามา ผมไม่ได้คลิกเลือกไว้ งานเข้าสิครับผมต้องแก้ไขข้อมูลใหม่

โดย query เอาชื่อพนักงานจากตาราง staff , staff_day_work,dayli_report ออกมาเข้าในฟอร์มเพื่อแก้ไข

ถึงที่ตายแล้วครับ ผมจะเอา checkbox ออกมาได้ยังไงโดยที่ชื่อที่เลือกไว้ก่อนหน้ายังอยู่ และผมสามารถแก้ไขข้อมูลใหม่ได้



ผมใช้ codeigniter ครับ สิ่งที่ผมต้องการก็คือ

ผมสามารถเก็บข้อมูลการทำงานประจำวันและรายจ่ายของพนักงานได้ โดยชื่อพนักงานนั้นต้องมาจากฐานข้อมูล

และเก็บชื่อพนักงานที่มาทำงานในวันนั้นๆ ส่วนคนที่ไม่มาทำงาน จะต้องไม่มีชื่อในวันนั้นๆ และสามารถเรียกออกมาแก้ไขได้

ขอแนวคิดด้วยครับ ว่าถ้าผมอยากได้แบบนี้ผมจะต้องออกแบบฐานข้อมูลยังไง
04 มิ.ย. 2557 เวลา 22:58 น. 1 647
^