Latest Posts

23 ส.ค. 2559

PHP MySQLi ตอนที่ 7 : การดึงข้อมูลจาก 2 ตาราง หรือหลายๆตารางที่สัมพันธ์กันมาแสดงด้วคำสั่ง JOIN

Songchai Saetern

ซอร์สโค้ด PHP ( list.php )


<?php include "mysql_connect.php";?>
<html>
<head>
<title>PHP MySQL กับการบันทึกข้อมูล : SUNZANDESIGN.BLOGSPOT.COM</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="css/bootstrap.min.css">

<style>

    .highlight {
        background-color: #FFFF88;
    }

</style>
</head>
<body>
    <div class="container">
    
      <div class="header clearfix">
        <h3 class="text-muted">PHP MySQL การค้นหาข้อมูล : SUNZANDESIGN.BLOGSPOT.COM    </h3>
      </div>
      
       <form class="form-horizontal" method="POST" action="list.php">
          <div class="form-group">
            <label for="inputEmail3" class="col-sm-2 control-label">ค้นหา : </label>
           
             <input type="text" class="form-control" name="txt_keyword" placeholder="ค้นหา">
            <input type="submit" value="ค้นหา" />
        </div>
       
           
       
    </form>
    
      <div class="row">
        <?php
       
            $search_text = isset($_POST['txt_keyword']) ? $_POST['txt_keyword'] : '';
           
            $data = array();
            $sql = "SELECT
                        comments.id
                        , tb_user.name
                        , comments.detail
                        , comments.sex
                        , comments.id
                    FROM comments
                    INNER JOIN tb_user ON comments.user_id = tb_user.id 
                    WHERE (detail LIKE '%$search_text%') AND status = 1";
            //echo $sql;
            if ($result = $conn->query($sql)) {
                //printf("Select returned %d rows.\n", $result->num_rows);
                while($row = $result->fetch_array(MYSQLI_ASSOC)){
                    //print_r($row);echo '<br>';
                    $data[] = $row;
                }

                /* free result set */
                $result->close();
            }
            $conn->close();
           
            //echo '<pre>', print_r($data, true), '</pre>';
        ?>
       
        <table class="table table-bordered">
            <thead>
                <tr>
                    <th>รหัส</th>
                    <th>ชื่อ</th>
                    <th>ความคิดเห็น</th>
                    <th>เพศ</th>
                    <th>การจัดการ</th>
                </tr>
            </thead>
            <tbody>
                <?php
                    foreach($data as $row){
                       
                        if($row['sex'] == 1){
                            $sex = 'ชาย';
                        }else if($row['sex'] == 2){
                            $sex = 'หญิง';
                        }else{
                            $sex = 'ไม่ระบุ';
                        }
                ?>
                <tr>
                    <td><?php echo $row['id'];?></td>
                    <td><?php echo $row['name'];?></td>
                    <td><?php echo $row['detail'];?></td>
                    <td><?php echo $sex;?></td>
                    <td>
                        <a href='form.php?id=<?php echo $row['id'];?>'>แก้ไข</a> | 
                        <a href='delete.php?id=<?php echo $row['id'];?>'>ลบ</a>
                    </td>
                </tr>
                <?php }?>
            </tbody>
        </table>
      </div>
      
    </div><!-- container -->

    <footer class="footer">
        <br/><br/>
        <div class="container">
        <i>ติดตามความเคลื่อนไหวได้ที่ :: <a href='https://www.facebook.com/ToBeDeveloper'>https://www.facebook.com/ToBeDeveloper</a></i>
        </div>
    </footer>

</div> <!-- /container -->

<script src="js/jquery.min.js"></script>
<script src="js/highlight.js"></script>

<script>
$("td.detail").highlight("<?php echo $search_text;?>");
</script>
</body>
</html>

20 ส.ค. 2559

PHP MySQLi ตอนที่ 6 การลบข้อมูลจากฐานข้อมูล

Songchai Saetern


โค้ด PHP (list.php)
<?php include "mysql_connect.php";?>
<html>
<head>
<title>PHP MySQL กับการบันทึกข้อมูล : SUNZANDESIGN.BLOGSPOT.COM</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="css/bootstrap.min.css">

<style>

    .highlight {
        background-color: #FFFF88;
    }

</style>
</head>
<body>
    <div class="container">
    
      <div class="header clearfix">
        <h3 class="text-muted">PHP MySQL การค้นหาข้อมูล : SUNZANDESIGN.BLOGSPOT.COM    </h3>
      </div>
      
       <form class="form-horizontal" method="POST" action="list.php">
          <div class="form-group">
            <label for="inputEmail3" class="col-sm-2 control-label">ค้นหา : </label>
           
             <input type="text" class="form-control" name="txt_keyword" placeholder="ค้นหา">
            <input type="submit" value="ค้นหา" />
        </div>
       
           
       
    </form>
    
      <div class="row">
        <?php
       
            $search_text = isset($_POST['txt_keyword']) ? $_POST['txt_keyword'] : '';
           
            $data = array();
            $sql = "SELECT * FROM comments  
                    WHERE (`name` LIKE '%$search_text%'  
                    OR detail LIKE '%$search_text%') AND status = 1";
            //echo $sql;
            if ($result = $conn->query($sql)) {
                //printf("Select returned %d rows.\n", $result->num_rows);
                while($row = $result->fetch_array(MYSQLI_ASSOC)){
                    //print_r($row);echo '<br>';
                    $data[] = $row;
                }

                /* free result set */
                $result->close();
            }
            $conn->close();
           
            //echo '<pre>', print_r($data, true), '</pre>';
        ?>
       
        <table class="table table-bordered">
            <thead>
                <tr>
                    <th>รหัส</th>
                    <th>ชื่อ</th>
                    <th>ความคิดเห็น</th>
                    <th>เพศ</th>
                    <th>การจัดการ</th>
                </tr>
            </thead>
            <tbody>
                <?php
                    foreach($data as $row){
                       
                        if($row['sex'] == 1){
                            $sex = 'ชาย';
                        }else if($row['sex'] == 2){
                            $sex = 'หญิง';
                        }else{
                            $sex = 'ไม่ระบุ';
                        }
                ?>
                <tr>
                    <td><?php echo $row['id'];?></td>
                    <td><?php echo $row['name'];?></td>
                    <td><?php echo $row['detail'];?></td>
                    <td><?php echo $sex;?></td>
                    <td>
                        <a href='form.php?id=<?php echo $row['id'];?>'>แก้ไข</a> |
                        <a href='delete.php?id=<?php echo $row['id'];?>'>ลบ</a>
                    </td>
                </tr>
                <?php }?>
            </tbody>
        </table>
      </div>
      
    </div><!-- container -->

    <footer class="footer">
        <br/><br/>
        <div class="container">
        <i>ติดตามความเคลื่อนไหวได้ที่ :: <a href='https://www.facebook.com/ToBeDeveloper'>https://www.facebook.com/ToBeDeveloper</a></i>
        </div>
    </footer>

</div> <!-- /container -->

<script src="js/jquery.min.js"></script>
<script src="js/highlight.js"></script>

<script>
$("td.detail").highlight("<?php echo $search_text;?>");
</script>
</body>
</html>

โค้ด PHP (delete.php)

<?php

include 'mysql_connect.php';
$conn->select_db("dev_database");

 $id = isset($_GET['id']) ? $_GET['id'] : '';

if($id > 0){
    $sql = "UPDATE `comments`
            SET status = 0
            WHERE `comments`.`id` = $id";
   
    $query = $conn->query($sql);
    if($conn->affected_rows){
        header('Location: list.php');
    }
}
?>


18 ส.ค. 2559

PHP MySQLi ตอนที่ 5 การป้องกัน SQL Injection ด้วยการใช้ prepare และ bindparam

Songchai Saetern

PHP MySQL ตอนที่ 4 การแก้ไขข้อมูลด้วยคำสั่ง UPDATE

Songchai Saetern




ดาวน์โหลดซอร์สโค้ด 

list.php 
<?php include "mysql_connect.php";?>
<html>
<head>
<title>PHP MySQL กับการบันทึกข้อมูล : SUNZANDESIGN.BLOGSPOT.COM</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="css/bootstrap.min.css">

<style>

    .highlight {
        background-color: #FFFF88;
    }

</style>
</head>
<body>
    <div class="container">
    
      <div class="header clearfix">
        <h3 class="text-muted">PHP MySQL การค้นหาข้อมูล : SUNZANDESIGN.BLOGSPOT.COM    </h3>
      </div>
      
       <form class="form-horizontal" method="POST" action="list.php">
          <div class="form-group">
            <label for="inputEmail3" class="col-sm-2 control-label">ค้นหา : </label>
           
             <input type="text" class="form-control" name="txt_keyword" placeholder="ค้นหา">
            <input type="submit" value="ค้นหา" />
        </div>
       
           
       
    </form>
    
      <div class="row">
        <?php
       
            $search_text = isset($_POST['txt_keyword']) ? $_POST['txt_keyword'] : '';
           
            $data = array();
            $sql = "SELECT * FROM comments  
                    WHERE `name` LIKE '%$search_text%'  
                    OR detail LIKE '%$search_text%'";
            //echo $sql;
            if ($result = $conn->query($sql)) {
                //printf("Select returned %d rows.\n", $result->num_rows);
                while($row = $result->fetch_array(MYSQLI_ASSOC)){
                    //print_r($row);echo '<br>';
                    $data[] = $row;
                }

                /* free result set */
                $result->close();
            }
            $conn->close();
           
            //echo '<pre>', print_r($data, true), '</pre>';
        ?>
       
        <table class="table table-bordered">
            <thead>
                <tr>
                    <th>รหัส</th>
                    <th>ชื่อ</th>
                    <th>ความคิดเห็น</th>
                    <th>เพศ</th>
                    <th>การจัดการ</th>
                </tr>
            </thead>
            <tbody>
                <?php
                    foreach($data as $row){
                       
                        if($row['sex'] == 1){
                            $sex = 'ชาย';
                        }else if($row['sex'] == 2){
                            $sex = 'หญิง';
                        }else{
                            $sex = 'ไม่ระบุ';
                        }
                ?>
                <tr>
                    <td><?php echo $row['id'];?></td>
                    <td><?php echo $row['name'];?></td>
                    <td><?php echo $row['detail'];?></td>
                    <td><?php echo $sex;?></td>
                    <td>
                        <a href='form.php?id=<?php echo $row['id'];?>'>แก้ไข</a> | ลบ
                    </td>
                </tr>
                <?php }?>
            </tbody>
        </table>
      </div>
      
    </div><!-- container -->

    <footer class="footer">
        <br/><br/>
        <div class="container">
        <i>ติดตามความเคลื่อนไหวได้ที่ :: <a href='https://www.facebook.com/ToBeDeveloper'>https://www.facebook.com/ToBeDeveloper</a></i>
        </div>
    </footer>

</div> <!-- /container -->

<script src="js/jquery.min.js"></script>
<script src="js/highlight.js"></script>

<script>
$("td.detail").highlight("<?php echo $search_text;?>");
</script>
</body>
</html>


form.php

<?php include "mysql_connect.php";?>
<?php
    //print_r($_GET);
    $id = (int)isset($_GET['id']) ? $_GET['id'] : '';

    $row = array();
    if($id > 0){
        $sql = "SELECT * FROM comments  
                WHERE `id` = $id";
        echo $sql,'<br/>';
        if ($stmt = $conn->query($sql)) {
       
 
            $row = $result->fetch_array(MYSQLI_ASSOC);
        }else{
            //echo $conn->error;
        }
    }
   
    if(empty($row)){
        $row['name'] = '';
        $row['sex'] = '';
        $row['detail'] = '';
    }
    print_r($row);
   
    $checked1 = '';
    $checked2 = '';
    if($row['sex']==1) $checked1 = 'checked';
    if($row['sex']==2) $checked2 = 'checked';
?>
<html>
<head>
<title>PHP MySQL กับการบันทึกข้อมูล : SUNZANDESIGN.BLOGSPOT.COM</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="css/bootstrap.min.css">

<style>

    .highlight {
        background-color: #FFFF88;
    }

</style>
</head>
<body>
    <div class="container">
    
      <div class="header clearfix">
        <h3 class="text-muted">PHP MySQL กับการบันทึกข้อมูล : SUNZANDESIGN.BLOGSPOT.COM    </h3>
      </div>
      

      <div class="row">
      
      <form class="form-horizontal" method="POST" action="save.php">
      <input type="hidden" value="<?php echo $id;?>" name="id"/>
  <div class="form-group">
    <label for="inputEmail3" class="col-sm-2 control-label">ชื่อ : </label>
    <div class="col-sm-10">
      <input type="text" class="form-control" name="txt_name" value="<?php echo $row['name'];?>" id="inputEmail3" placeholder="ระบุชื่อผู้โพสต์">
    </div>
  </div>
  <div class="form-group">
    <label for="inputPassword3" class="col-sm-2 control-label">รายละเอียด : </label>
    <div class="col-sm-10">
      <textarea name="txt_detail" class="form-control" rows="3"><?php echo $row['detail'];?></textarea>
    </div>
  </div>
  <div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
      <div class="checkbox">
        <label class="radio-inline">
          <input type="radio" name="sex" id="inlineRadio1" <?php echo $checked1;?> value="1"> ชาย
        </label>
        <label class="radio-inline">
          <input type="radio" name="sex" id="inlineRadio2" <?php echo $checked2;?> value="2"> หญิง
        </label>
      </div>
    </div>
  </div>
  <div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
      <button type="submit" class="btn btn-success">บันทึกข้อมูล</button>
    </div>
  </div>
</form>
      
      </div>
   
    </div>

    <footer class="footer">
        <div class="container">
        <i>ติดตามความเคลื่อนไหวได้ที่ :: <a href='https://www.facebook.com/ToBeDeveloper'>https://www.facebook.com/ToBeDeveloper</a></i>
        </div>
    </footer>

</div> <!-- /container -->

<script src="js/jquery.min.js"></script>
<script src="js/highlight.js"></script>

<script>
$("td.detail").highlight("<?php echo $search_text;?>");
</script>

<?php mysqli_close($conn);?>
</body>
</html>

save.php
<?php

include 'mysql_connect.php';
$conn->select_db("dev_database");

$name = $_POST['txt_name'];
$detail = $_POST['txt_detail'];
$sex = $_POST['sex'];
$date = date('Y-m-d H:i:s');

 $id = isset($_POST['id']) ? $_POST['id'] : '';

if($id!=''){
        $sql = "UPDATE `comments`
                SET `name`='$name'
                    , `detail`='$detail'
                    , `sex` = '$sex'
                    , `date_modify` = '$date'
                WHERE id = $id";
}else{
    $sql = "INSERT INTO `comments`
            (`name`, `detail`, `sex`, `date_modify`)
            VALUES
            (NULL, '$name', '$detail', '$sex', '$date');";
}
echo $sql;
$query = $conn->query($sql);

if (!$query) {
    printf("Error : ", $conn->error);
    exit();
}

printf ("New Record has id %d.\n", $conn->insert_id);

?>



15 ส.ค. 2559

PHP MySQL ตอนที่ 3 : การค้นหาและแสดงข้อมูลในรูปแบบตาราง 2/2

Songchai Saetern
PHP mysqli search

หลังจากที่เขียนโค้ด PHP แสดงผลข้อมูลด้วยคำสั่ง mysqli ไปในตอนที่แล้ว ก็จะมาเพิ่มในส่วนของการค้นหา โดยดัดแปลงโค้ดจากไฟล์เดิม list.php เพื่อแทรกคำสั่งค้นหาลงไป สำหรับโครงสร้างฐานข้อมูลสามารถเข้าไปสร้างด้วยโค้ดเดียวกันกับบทความที่แล้ว


โค้ด PHP

<?php include "mysql_connect.php";?>
<html>
<head>
<title>PHP MySQL กับการบันทึกข้อมูล : SUNZANDESIGN.BLOGSPOT.COM</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="css/bootstrap.min.css">

<style>

    .highlight {
        background-color: #FFFF88;
    }

</style>
</head>
<body>
    <div class="container">
    
      <div class="header clearfix">
        <h3 class="text-muted">PHP MySQL การค้นหาข้อมูล : SUNZANDESIGN.BLOGSPOT.COM    </h3>
      </div>
      
       <form class="form-horizontal" method="POST" action="list.php">
          <div class="form-group">
            <label for="inputEmail3" class="col-sm-2 control-label">ค้นหา : </label>
           
             <input type="text" class="form-control" name="txt_keyword" placeholder="ค้นหา">
            <input type="submit" value="ค้นหา" />
        </div>
       
           
       
    </form>
    
      <div class="row">
        <?php
       
            $search_text = isset($_POST['txt_keyword']) ? $_POST['txt_keyword'] : '';
           
            $data = array();
            $sql = "SELECT * FROM comments  
                    WHERE `name` LIKE '%$search_text%'  
                    OR detail LIKE '%$search_text%'";
            echo $sql;
            if ($result = $conn->query($sql)) {
                //printf("Select returned %d rows.\n", $result->num_rows);
                while($row = $result->fetch_array(MYSQLI_ASSOC)){
                    //print_r($row);echo '<br>';
                    $data[] = $row;
                }

                /* free result set */
                $result->close();
            }
            $conn->close();
           
            //echo '<pre>', print_r($data, true), '</pre>';
        ?>
       
        <table class="table table-bordered">
            <thead>
                <tr>
                    <th>รหัส</th>
                    <th>ชื่อ</th>
                    <th>ความคิดเห็น</th>
                    <th>เพศ</th>
                </tr>
            </thead>
            <tbody>
                <?php
                    foreach($data as $row){
                       
                        if($row['sex'] == 1){
                            $sex = 'ชาย';
                        }else if($row['sex'] == 2){
                            $sex = 'หญิง';
                        }else{
                            $sex = 'ไม่ระบุ';
                        }
                ?>
                <tr>
                    <td><?php echo $row['id'];?></td>
                    <td><?php echo $row['name'];?></td>
                    <td><?php echo $row['detail'];?></td>
                    <td><?php echo $sex;?></td>
                </tr>
                <?php }?>
            </tbody>
        </table>
      </div>
      
    </div><!-- container -->

    <footer class="footer">
        <br/><br/>
        <div class="container">
        <i>ติดตามความเคลื่อนไหวได้ที่ :: <a href='https://www.facebook.com/ToBeDeveloper'>https://www.facebook.com/ToBeDeveloper</a></i>
        </div>
    </footer>

</div> <!-- /container -->

</body>
</html>




12 ส.ค. 2559

PHP MySQL ตอนที่ 2 : การค้นหาและแสดงข้อมูลในรูปแบบตาราง 1/2

Songchai Saetern
จัดการฐานข้อมูลด้วย phpMyAdmin
แสดงผลข้อมูลด้วยการเขียนโปรแกรม PHP โดยใช้ฟังก์ชั่น MySQLi
ใช้ CSS ของ Bootstrap เพื่อสร้างตารางให้สวยงามขึ้น




โครงสร้างฐานข้อมูล

--
-- Database: `dev_database`
--

-- --------------------------------------------------------

--
-- Table structure for table `comments`
--

CREATE TABLE `comments` (
  `id` int(11) NOT NULL,
  `name` varchar(30) NOT NULL,
  `detail` text NOT NULL,
  `sex` int(1) NOT NULL,
  `date_record` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='ตารางเก็บความคิดเห็น';

--
-- Indexes for dumped tables
--

--
-- Indexes for table `comments`
--
ALTER TABLE `comments`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `comments`
--
ALTER TABLE `comments`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;


โค้ด PHP เชื่อมต่อฐานข้อมูล

<?php
$conn = mysqli_connect("localhost","tobedev","dev.1234");

if (!$conn->set_charset("utf8")) {
    printf("Error loading character set utf8: %s\n", $conn->error);
    exit();
}

$conn->select_db("dev_database");
?>

โค้ด PHP แสดงผล
<?php include "mysql_connect.php";?>
<html>
<head>
<title>PHP MySQL กับการบันทึกข้อมูล : SUNZANDESIGN.BLOGSPOT.COM</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="css/bootstrap.min.css">

<style>

    .highlight {
        background-color: #FFFF88;
    }

</style>
</head>
<body>
    <div class="container">
    
      <div class="header clearfix">
        <h3 class="text-muted">PHP MySQL การค้นหาข้อมูล : SUNZANDESIGN.BLOGSPOT.COM    </h3>
      </div>
    
      <div class="row">
        <?php
            $data = array();
            if ($result = $conn->query("SELECT * FROM comments")) {
                //printf("Select returned %d rows.\n", $result->num_rows);
                while($row = $result->fetch_array(MYSQLI_ASSOC)){
                    //print_r($row);echo '<br>';
                    $data[] = $row;
                }

                /* free result set */
                $result->close();
            }
            $conn->close();
           
            //echo '<pre>', print_r($data, true), '</pre>';
        ?>
       
        <table class="table table-bordered">
            <thead>
                <tr>
                    <th>รหัส</th>
                    <th>ชื่อ</th>
                    <th>ความคิดเห็น</th>
                    <th>เพศ</th>
                </tr>
            </thead>
            <tbody>
                <?php
                    foreach($data as $row){
                       
                        if($row['sex'] == 1){
                            $sex = 'ชาย';
                        }else if($row['sex'] == 2){
                            $sex = 'หญิง';
                        }else{
                            $sex = 'ไม่ระบุ';
                        }
                ?>
                <tr>
                    <td><?php echo $row['id'];?></td>
                    <td><?php echo $row['name'];?></td>
                    <td><?php echo $row['detail'];?></td>
                    <td><?php echo $sex;?></td>
                </tr>
                <?php }?>
            </tbody>
        </table>
      </div>
      
    </div><!-- container -->

    <footer class="footer">
        <br/><br/>
        <div class="container">
        <i>ติดตามความเคลื่อนไหวได้ที่ :: <a href='https://www.facebook.com/ToBeDeveloper'>https://www.facebook.com/ToBeDeveloper</a></i>
        </div>
    </footer>

</div> <!-- /container -->

<script src="js/jquery.min.js"></script>
<script src="js/highlight.js"></script>

<script>
$("td.detail").highlight("<?php echo $search_text;?>");
</script>
</body>
</html>


ดาวน์โหลด CSS, JS และไฟล์ตัวอย่างทั้งหมดได้ที่
https://github.com/sunzandesign/example


คลิกที่นี่เพื่อดูบน Youtube

11 ส.ค. 2559

PHP MySQL ตอนที่ 1 : การบันทึกข้อมูลด้วย MySQLi Function

Songchai Saetern
- ออกแบบฐานข้อมูลด้วย phpMyAdmin
- สร้างแบบฟอร์มด้วย Bootstap css framework
- บันทึกข้อมูลด้วย PHP mysqli




โครงสร้างฐานข้อมูล 

--
-- Database: `dev_database`
--

-- --------------------------------------------------------

--
-- Table structure for table `comments`
--

CREATE TABLE `comments` (
  `id` int(11) NOT NULL,
  `name` varchar(30) NOT NULL,
  `detail` text NOT NULL,
  `sex` int(1) NOT NULL,
  `date_record` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='ตารางเก็บความคิดเห็น';

--
-- Indexes for dumped tables
--

--
-- Indexes for table `comments`
--
ALTER TABLE `comments`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `comments`
--
ALTER TABLE `comments`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

การเชื่อมต่อฐานข้อมูล

<?php
$conn = mysqli_connect("localhost","tobedev","dev.1234");

if (!$conn->set_charset("utf8")) {
    printf("Error loading character set utf8: %s\n", $conn->error);
    exit();
}

$conn->select_db("test");
$conn->select_db("dev_database");

?>

แบบฟอร์ม

<?php include "mysql_connect.php";?>
<html>
<head>
<title>PHP MySQL กับการบันทึกข้อมูล : SUNZANDESIGN.BLOGSPOT.COM</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="css/bootstrap.min.css">

<style>

    .highlight {
        background-color: #FFFF88;
    }

</style>
</head>
<body>
    <div class="container">
   
      <div class="header clearfix">
        <h3 class="text-muted">PHP MySQL กับการบันทึกข้อมูล : SUNZANDESIGN.BLOGSPOT.COM    </h3>
      </div>
     

      <div class="row">
     
      <form class="form-horizontal" method="POST" action="save.php">
  <div class="form-group">
    <label for="inputEmail3" class="col-sm-2 control-label">ชื่อ : </label>
    <div class="col-sm-10">
      <input type="text" class="form-control" name="txt_name" id="inputEmail3" placeholder="ระบุชื่อผู้โพสต์">
    </div>
  </div>
  <div class="form-group">
    <label for="inputPassword3" class="col-sm-2 control-label">รายละเอียด : </label>
    <div class="col-sm-10">
      <textarea name="txt_detail" class="form-control" rows="3"></textarea>
    </div>
  </div>
  <div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
      <div class="checkbox">
        <label class="radio-inline">
          <input type="radio" name="sex" id="inlineRadio1" value="1"> ชาย
        </label>
        <label class="radio-inline">
          <input type="radio" name="sex" id="inlineRadio2" value="2"> หญิง
        </label>
      </div>
    </div>
  </div>
  <div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
      <button type="submit" class="btn btn-success">บันทึกข้อมูล</button>
    </div>
  </div>
</form>
     
      </div>
    
    </div>

    <footer class="footer">
        <div class="container">
        <i>ติดตามความเคลื่อนไหวได้ที่ :: <a href='https://www.facebook.com/ToBeDeveloper'>https://www.facebook.com/ToBeDeveloper</a></i>
        </div>
    </footer>

</div> <!-- /container -->

<script src="js/jquery.min.js"></script>
<script src="js/highlight.js"></script>

<script>
$("td.detail").highlight("<?php echo $search_text;?>");
</script>

<?php mysqli_close($conn);?>
</body>
</html>

ไฟล์บันทึกข้อมูล
 <?php

include 'mysql_connect.php';
$conn->select_db("dev_database");

$name = $_POST['txt_name'];
$detail = $_POST['txt_detail'];
$sex = $_POST['sex'];
$date = date('Y-m-d H:i:s');

$sql = "INSERT INTO `comments`
            (`id`, `name`, `detail`, `sex`, `date_record`)
            VALUES
            (NULL, '$name', '$detail', '$sex', '$date');";
//echo $sql;
$query = $conn->query($sql);

if (!$query) {
    printf("Error : ", $conn->error);
    exit();
}

printf ("New Record has id %d.\n", $conn->insert_id);

?>

ดาวน์โหลดซอร์สโค้ดตัวอย่างทั้งหมดได้ที่
https://github.com/sunzandesign/example

4 ส.ค. 2559

PHP ดึงข้อมูลจาก MySQL Database แสดงข้อมูลเรียงแนวตั้ง (PDO)

Songchai Saetern
PHP PDO ตารางแนวตั้ง
ผลลัพธ์ที่ได้


ปกติแล้วเมื่อเราใช้ PHP วนลูปข้อมูลจากฐานข้อมูล MySQL ด้วย while() ข้อมูลจะถูกดึงออกมาเรียงกัน และเราสามารถแบ่งข้อมูลในแนวนอนด้วย array_chunk() หรืออาจจะใช้วิธีหารเอาเศษ เพื่อเทียบดูว่าเมื่อไหร่จะขึ้น </tr><tr> หรือปิดเปิดบรรทัดใหม่

แต่ในกรณีแนวตั้ง หลังจากที่เราใช้ while() ลูปดึงข้อมูลมาแล้วนั้น ผมจะใช้วิธีการนับจำนวนอาร์เรย์ทั้งหมด แล้วเอามาหารตามจำนวนแถวที่ต้องการ เพื่อสร้างอาร์เรย์ชุดใหม่ ที่ได้จำนวนคอลัมน์ และลำดับของข้อมูลตามการจัดเรียงตารางแนวตั้งที่ต้องการ


ซอร์สโค้ด PHP + PDO with MySQL

<?php
$user = 'tobedev';
$pass = 'dev.1234';

try {
    $dbh = new PDO('mysql:host=localhost:33065;dbname=tobedev_example', $user, $pass);
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}

$stm = $dbh->prepare("SELECT name, price FROM tb_product LIMIT 14");
$stm->execute();

$no        = 1;
$data     = array();
while($result = $stm->fetch(PDO::FETCH_ASSOC)){
    $result['no'] = $no++;
    $data[] = $result;
}
$stm = null;
//echo '<pre>',print_r($data,true), '</pre>';

$count         = count($data); //หาจำนวนข้อมูลทั้งหมด
$row_num     = 5; //กำหนดจำนวนแถวที่ต้องการ
$col_num     = ceil($count/$row_num); //จำนวนคอลัมน์ที่จะแสดง


//สร้างอาร์เรย์ชุดใหม่
$new_data = array();
for($i=0;$i<$row_num;$i++) //วนลูปตามจำนวนแถวที่ต้องการ
{
    $row = array();
    $index = $i;
    for($j=0;$j<$col_num;$j++) //วนลูปตามจำนวนคอลัมน์ที่คำนวณได้
    {
        $row[] = isset($data[$index]) ? $data[$index] : '';
        $index += $row_num;//เลื่อนลำดับข้อมูลของคอลัมน์ต่อไป
    }
    $new_data[] = $row;
}
//echo '<pre>',print_r($new_data,true), '</pre>';

//สร้างตารางข้อมูล
echo '<table border=1 cellpadding=5 cellspaceing=1>';

echo '<tr>';
for($i=0;$i<$col_num;$i++) //วนลูปตามจำนวนคอลัมน์ที่คำนวณได้
{
    echo "<th>No</th>
    <th>Name</th>
    <th>Price</th>";
}
echo '</tr>';

foreach ($new_data as $row) //วนลูปแสดงข้อมูลในอาร์เรย์ชุดใหม่ทีละแถว
{
    echo "<tr>";
    foreach ($row as $data) //แสดงอาร์เรย์แต่ละชุด
    {
        echo "<td style='background-color:#eeeeee'>$data[no]</td>
        <td>$data[name]</td>
        <td>$data[price]</td>";
    }
    echo "</tr>";
}
echo '</table>';

$dbh = null;
?>


โค้ด SQL สำหรับสร้างตารางข้อมูลเพื่อทดสอบ

--
-- Database: `tobedev_example`
--

-- --------------------------------------------------------

--
-- Table structure for table `tb_product`
--

CREATE TABLE IF NOT EXISTS `tb_product` (
`id` int(11) NOT NULL,
`name` varchar(30) NOT NULL,
`price` double(12,2) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;

--
-- Dumping data for table `tb_product`
--

INSERT INTO `tb_product` (`id`, `name`, `price`) VALUES
(1, 'Product 1', 100.00),
(2, 'Product 2', 100.00),
(3, 'Product 3', 100.00),
(4, 'Product 4', 100.00),
(5, 'Product 5', 100.00),
(6, 'Product 6', 100.00),
(7, 'Product 7', 100.00),
(8, 'Product 8', 100.00),
(9, 'Product 9', 100.00),
(10, 'Product 10', 100.00),
(11, 'Product 11', 100.00),
(12, 'Product 12', 100.00),
(13, 'Product 13', 100.00),
(14, 'Product 14', 100.00),
(15, 'Product 15', 100.00);

--
-- Indexes for dumped tables
--

--
-- Indexes for table `tb_product`
--
ALTER TABLE `tb_product`
ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `tb_product`
--
ALTER TABLE `tb_product`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=16;



21 ก.ค. 2559

สอนเขียน PHP บนสมาร์ทโฟน Android ด้วย Galaxy Tab A 8.0"

Songchai Saetern



ติดตั้งแอพฯดังนี้
1. PHP web server สำหรับรัน PHP + MySQL
2. PHP editor สำหรับเขียนโค้ด

โดยในคลิปจะเลือกใช้ Palapa web server + AWD IDE for web dev

17 ก.ค. 2559

"ตัวอย่างที่ดี มีค่ามากกว่าคำสอน" ความแตกต่างระหว่าง "มองเห็นภาพ" กับ "อ่านแล้วเข้าใจ"

Songchai Saetern


เมื่อเข้าสู่ยุคอินเตอร์ความเร็วแสง (ใน Fiber Optic) เราก็เริ่มมองข้ามหนังสือที่ตีพิมพ์เกลื่อนในท้องตลาด (แต่เราก็ยังต้องการหนังสือเฉพาะงาน หรือสำหรับพื้นฐานนะครับ ^^;)

แหล่งข้อมูลที่กว้างใหญ่ไพศาลอย่างอินเตอร์ก็เข้ามามีความสำคัญกับการเรียนรู้อย่างเต็มรูปแบบ ข้อมูลใหม่ๆ ก็มีการอัพเดตอยู่ตลอดเวลา ซึ่งต่างจากหนังสือที่ต้องรอพิมพ์ฉบับใหม่

ย้อนไปเมื่อตอนที่ตัวผมเริ่มศึกษาการเขียนเว็บไซต์ ต้องเดินทางไปไกลถึงห้องสมุดประชาชน หาหนังสือ HTML, VB Script, JavaScript มาอ่านแล้วลองทำตาม ซึ่งหนังสือทั้งหมดล้วนแต่เป็นหนังสือที่ได้รับบริจาคมาเป็นส่วนใหญ

ดีขึ้นหน่อยก็ตอนที่เริ่มเรียนอีกครั้ง ก็มีหนังสือใหม่ๆให้อ่านจากห้องสมุดของวิทยาลัย และมีวิชาเรียนที่เกี่ยวกับเว็บไซต์ก็ยิ่งเข้าใจได้มากขึ้น


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


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

"ตัวอย่างที่ดี มีค่ามากกว่าคำสอน" 

คำๆนี้ผุดขึ้นมาในหัวทันที เมื่อเปรียบเทียบเวลาที่ผมต้องอ่านบทความในเว็บหรือบล็อกต่างๆ กับนั่งดูวิดีโอบน Youtube อะไรที่เข้าใจได้ง่ายกว่ากัน

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

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

มาถึงตอนนี้บอกได้เลยว่า "การเขียนโปรแกรมนั้นไม่ยาก แต่สอนเขียนโปรแกรมนี่ยากของจริง"

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