Long Live The King
ข้าพเจ้าไม่ได้มีพรสวรรค์พิเศษอะไร ข้าพเจ้าเพียงแต่มีความกระหายใคร่รู้อยู่เสมอ ทุ่มเทให้กับสิ่งที่อยากรู้ พากเพียรอย่างทรหด และสำรวจวิจารณ์ความรู้ของตัวเองเป็นประจำ ปัจจัยเหล่านี้คือที่มาของแนวคิดต่างๆ ของข้าพเจ้า .... อัลเบิร์ต ไอน์สไตน์

วันอังคารที่ 17 กันยายน พ.ศ. 2556

วิธีดึงข้อมูลจาก Database มาแสดงแบบ OOP PHP



บทความนี้เกี่ยวข้องกับการสร้างฟังชั่น เพื่อเชื่อมต่อฐานข้อมูล และดึงข้อมูลขึ้นมาแสดง ยังไม่เต็มรูปแบบของ OOP เนื่องจากยังไม่มีการสร้าง Object ภายนอก เพียงแต่มีรูปแบบการเชื่อมต่อฐานข้อมูลแบบ OOP และสามารถนำไปใช้ได้จริง เรียกว่า สร้างจินตนาการ อุ่นเครื่องกันก่อน.....

เริ่ม
ผมจะสร้างไฟล์ขึ้นมา 2 ไฟล์ คือ index.php กับ MySqlConnect.php
ที่ไฟล์ MySqlConnect.php ผมจะสร้าง function เพื่อเชื่อมต่อฐานข้อมูลก่อน ดังนี้

ไฟล์ MySqlConnect.php
function connect()
 {
    $conn = new mysqli('host', 'username', 'password', 'database')
                         or die('not connect to sql');
    return $conn;
 }
โค้ดที่ท่านเห็นด้านบน นี้คือการเชื่อมต่อฐานข้อมูลแบบ OOP ในฟังก์ชั่นนี้มีการสร้างอ็อบเจ็กต์ คือ
$conn = new mysqli(); เป็นรูปแบบการเชื่อมต่อกับฐานข้อมูล MySQL แบบใหม่ซึ่ง สามารถใช้งานได้ ใน MySQL 4.1 ขึ้นไป
ส่วนที่ไฟล์ index.php ผมก็จะนำเข้าไฟล์ MySqlConnect.php และสร้างตัวแปรขึ้นมาเพื่อเรียกใช้ function connect();

ไฟล์ index.php
<!DOCTYPE html">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        require_once('MySqlConnect.php');
        $conn = connect();        
        ?>
    </body>
</html>
มาถึงตอนนี้เราก็ทำการเชื่อมต่อฐานข้อมูลเรียบร้อยแล้ว เหลือแต่ select ตารางฐานข้อมูลและ query ออกมา
เท่านั้นเอง ไปต่อกันเลยครับ...
ที่ไฟล์ MySqlConnect.php ผมจะสร้างฟังก์ชั่นอีกคือ getSql();
function getSql($conn='', $sql='')
{
    $query = $conn->query($sql);
    $rows = array();

    while ($row = $query->fetch_array()) {        
        $rows[] = $row;
    }
    return $rows;
}
ฟังก์ชั่นนี้รับค่า parameter มาสองค่า คือ $conn, $sql ก็คือตัวแปรที่เราได้สร้างเอาไว้ที่ไฟล์ index.php
แล้วผมก็ query ออกมา เก็บข้อมูลในรูปแบบ Array แล้วก็ return ค่าออกไป

จากนั้นที่ไฟล์ index.php ก็ไปสร้างตัวแปรเพื่อส่งค่า parameter ไปให้กับ function getSql()
พร้อมทั้งวนลูป ค่าที่ได้รับการคืนค่ากลับออกมา

ไฟล์ index.php
$sql = 'select * from article';
$results = getSql($conn, $sql);
        foreach($results as $row){
        echo "<div style='width:400px;margin-left:200px;'>";    
        echo "<h3>".$row['title']."</h3>";
        echo $row['article'];
        echo "</div>";
เพียงเท่านี้เราก็จะได้ฟังก์ชั่นการเชื่อมต่อฐานข้อมูล พร้อมทั้ง query ข้อมูลออกมาแสดง แบบง่ายๆ

บทความนี้ก็ขอจบเพียงเท่านี้ครับ ผิดพลาดยังไงก็ขออภัยด้วยครับ.....

ไฟล์ index.php
<!DOCTYPE html>
<html lang="th">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        require_once('MySqlConnect.php');
        $conn = connect();
        $sql = 'select * from article';

        $results = getSql($conn, $sql);
        foreach($results as $row){
        echo "<div style='width:500px;margin-left:100px;'>";    
        echo "<h3>".$row['title']."</h3>";
        echo $row['article'];
        echo "</div>";
        }
        ?>
    </body>
</html>

ไฟล์ MySqlConnect.php
<?php
function connect()
{
    $conn = new mysqli('localhost', 'root', '', 'bookneo')
                       or die('not connect to sql');
    return $conn;
}

 
function getSql($conn, $sql)
{
    $query = $conn->query("SET NAMES UTF8");
    $query = $conn->query($sql);
 
    $rows = array();
 
    while ($row = $query->fetch_array()){        
        $rows[] = $row;
    }
    return $rows;
}
?>


2 ความคิดเห็น:

  1. อยากเขียนกล่องแสดงความคิดเห็นได้อะคะ

    ตอบลบ
    คำตอบ
    1. โทษทีครับ ช่วงนี้ไม่ค่อยว่าง เอาไว้มีเวลาจะเขียนมาให้อ่านครับ

      ลบ

© Bookneo, AllRightsReserved.

ขับเคลื่อนโดย Blogger Designed by Nikhorn Thongchuay