17 August 2015

เขียน php ดึงข้อมูล mysql จาก field ที่เป็นชนิด enum เพื่อใช้ input ข้อมูลแบบต่างๆ

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

<?php
//เริ่มติดต่อฐานข้อมูล จุดสำคัญอยู่ที่คำสั่ง sql ที่เราเรียกไปนะครับ ตรง show full columns
//แทนที่จะ query ข้อมูลในตาราง เราจะทำการ query หัวของตารางแทนครับ

$sql = "show full columns from ชื่อตาราง";

$status = mysql_query($sql, $con1) or die(mysql_error());

//นับจำนวน field ของ table เราครับว่ามีเท่าไหร่

$totalRows = mysql_num_rows($status); 


//เริ่มเช็คฟิลด์ที่เราตั้งเป็น enum ไว้


                                    for ($i = 0; $i < $totalRows; $i++) {
                                        $columns = mysql_fetch_array($status);
                                        if ($columns['Field'] == 'ชื่อฟิลด์ที่ต้องการ') {
                                            $ss = explode(",", $columns['Type']);
                                            $n = count($ss); //นับจำนวน ตัวเลือกใน enum


//ส่วนนี้จะเริ่มการตัดข้อความใน enum ทั้งหมด ใส่ตัวแปร $s_tmp1 แบบ array


                                            for ($i = 0; $i < $n; $i++) {
                                                $s_tmp = $ss[$i];
                                                $s_tmp1 = explode("'", $s_tmp);
                                                $ss[$i] = $s_tmp1[1];
                                            }
//เริ่มในส่วนของการแสดงผล ส่วนนี้ผมทำให้เป็น radio group เพื่อนๆ อยากทำเป็นอย่างอื่นลองประยุกต์ใช้ดูนะครับ
                                            for ($i = 0; $i < $n; $i++) {
?>
                                                <label>
                                                    <input type="radio" name="status" value="<?php echo $ss[$i]; ?>" id="status">
                                                    <?php echo $ss[$i]; ?>
                                                </label>
                                                <br>
                                                <?php
                                            }
                                        }
                                    }
-----------------------------------------------------------------------------------------