แหล่งเรียนรู้พื้นฐาน CodeIgniter เพื่อการพัฒนาระบบเว็บแอพพลิเคชั่น ที่สะดวก และปลอดภัยขึ้น

โดย SONGCHAI SAETERN
รวมลิงค์วิดีโอสอนเขียนโปรแกรม PHP ด้วย CodeIgniter Framework
สำหรับแหล่งเรียนรู้ที่นำเสนอในบทหน้านี้ จะเป็นพื้นฐานการใช้งาน CodeIgniter เพื่อให้เข้าใจหลักการเขียนโปรแกรมแบบ MVC และการตั้งค่าต่างๆ ก่อนเริ่มเขียนโปรแกรม

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

สอนเขียน PHP ด้วย Codeigniter Framework ( โดย KanexKane )

สอนเขียน PHP ด้วย Codeigniter Framework


ชุดการสอน Codeigniter Framework v.2 ( โดย บัณฑิต แสนคำภา )

ชุดการสอน Codeigniter Framework v.2


สอนเขียนเว็บไซต์ ด้วย Codeigniter HMVC ( โดย พิเชษฐ์ ขุนใจ )

สอนเขียนเว็บไซต์ ด้วย Codeigniter HMVC


สอนการเขียน Basic : PHP Codeigniter 3.1.8 ( โดย TTVONE DEVELOPER )

สอนการเขียน Basic : PHP Codeigniter 3.1.8









PHP CI MANIA - PHP Code Generator 

โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม"
http://fastcoding.phpcodemania.com/index.php/#purchase-order
ราคาสุดคุ้ม
http://fastcoding.phpcodemania.com

PHP CI MANIA : Version 0.7 - อัพเกรดเวอร์ชั่น PREMIUM เพิ่มโมดูล PDF / Excel / Chart

โดย SONGCHAI SAETERN
อัพเดตความสามารถใหม่ PHP CI MANIA มีรายละเอียดดังนี้

[1] การสร้างรายงานรูปแบบ PDF
[2] การนำเข้า/ส่งออกข้อมูลด้วยไฟล์ Excel
[3] สร้างรายงานรูปแบบกราฟด้วย Chart.js

สามารถทดลองใช้งานตัว Demo ออนไลน์ได้ที่
http://demo.phpcodemania.com/phpcimania


ตัวอย่างการทำงาน PHP CI MAINA เวอร์ชั่น PREMIUM



PHP อ่านไฟล์ Excel ง่ายๆด้วย PHP CI MANIA ( ver. PREMIUM)




PHP CI MANIA สาธิตการทำงานของส่วนแสดงผลแผนภูมิด้วย Charts.js




แนะนำการใช้งานแบบเบื้องต้น ครบทุกขั้นตอน





PHP CI MANIA - PHP Code Generator 

โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม"
http://fastcoding.phpcodemania.com/index.php/#purchase-order
ราคาสุดคุ้ม
http://fastcoding.phpcodemania.com

PHP Array เขียนโปรแกรมตัดเกรดด้วย PHP เพื่อการเรียนรู้การใช้งาน Array

โดย SONGCHAI SAETERN
โค้ดต่อไปนี้จะเป็นการสร้างฟังก์ชั่นเพื่อตัดเกรด โดยใช้ความสามารถของตัวแปร Array ในการเก็บเกรดต่างๆเอาไว้ทั้งหมด 10 ตำแหน่ง และข้อความ Error ในตำแหน่งที่ 11

<?php
// ฟังก์ชั่นรับค่าคะแนน และคืนค่าเป็น เกรดที่ได้
function calculate_grade($score){
$grade = array('F', 'F', 'F', 'F', 'F', 'D', 'C', 'B', 'A', 'A', 'A', 'Error');
if($score > 100 || $score < 0){
$cal = 11;
}else{
$cal = floor($score / 10);
}
return $grade[$cal];
}
// ทดสอบฟังก์ชั่นโดยการส่งค่าทุกหลักเข้าไป
echo '<br/>', $number = 0, ' = ', calculate_grade($number);
echo '<br/>', $number = 8, ' = ', calculate_grade($number);
echo '<br/>', $number = 16, ' = ', calculate_grade($number);
echo '<br/>', $number = 21, ' = ', calculate_grade($number);
echo '<br/>', $number = 39, ' = ', calculate_grade($number);
echo '<br/>', $number = 47, ' = ', calculate_grade($number);
echo '<br/>', $number = 55, ' = ', calculate_grade($number);
echo '<br/>', $number = 64, ' = ', calculate_grade($number);
echo '<br/>', $number = 78, ' = ', calculate_grade($number);
echo '<br/>', $number = 82, ' = ', calculate_grade($number);
echo '<br/>', $number = 93, ' = ', calculate_grade($number);
echo '<br/>', $number = 100, ' = ', calculate_grade($number);
echo '<br/>', $number = 103, ' = ', calculate_grade($number);
echo '<br/>', $number = -49, ' = ', calculate_grade($number);
?>

การทำงานในฟังก์ชั่น ตัดเกรดก็คือ

$cal = floor($score / 10);

นำคะแนนมาหาร 10 เพื่อให้เป็นเลขหลักเดียว
แล้วก็นำไปดึงค่าใน Array ที่เราได้หนดไว้ 0 - 11 ตำแหน่ง

$grade = array('F', 'F', 'F', 'F', 'F', 'D', 'C', 'B', 'A', 'A', 'A', 'Error');

โดยตำแหน่งที่ 11 คือข้อความ Error เมื่อส่งคะแนนมาไม่ถูกต้อง

if($score > 100 || $score < 0){

คำสั่ง if คือเช็คการกรอกคะแนนที่ไม่ถูกต้อง
คือ ถ้าต่ำกว่า 0 หรือ เกิน 100 คือ Error

ผลลัพธ์จะได้ดังนี้




ข้อมูลเพิ่มเติม

PHP Arrays
https://www.php.net/manual/en/language.types.array.php





PHP CI MANIA - PHP Code Generator 

โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม"
 http://fastcoding.phpcodemania.com/index.php/#purchase-order
ราคาสุดคุ้ม  1,500  บาท
http://fastcoding.phpcodemania.com

การเปิด Console ของเว็บบราวเซอร์ เพื่ออ่าน Error เมื่อส่งข้อมูลแบบ Ajax

โดย SONGCHAI SAETERN
กรณีที่เกิด Error แล้วไม่พบข้อความแจ้งเตือน จะมีอยู่ 2 สาเหตุหลักๆ คือ
1. ไม่ได้เปิด error_reporting() สามารถดูวิธีได้ที่นี่
2. เป็นการรับส่งข้อมูลผ่าน AJAX จึงทำให้แสดงอยู่เบื้องหลังต้องเปิดดูจาก console ของเว็บบราวเซอร์

ซึ่งขั้นตอนมีดังต่อไปนี้

1. กด F12 เพื่อเปิด Console ของเว็บบราวเซอร์ขึ้นมา
2. คลิกไปที่แท็ป เครือข่าย (Network)
3. คลิกลิงค์รายการที่ขึ้น Error
4. คลิกดูแท็ป การตอบสนอง (Response)
5. จะปรากฏข้อความแจ้ง Error พื้นที่ด้านล่าง



วิดีโอแนะนำขั้นตอน



  กลับสู่หน้า FQA  




PHP CI MANIA - PHP Code Generator 

โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม"
http://fastcoding.phpcodemania.com/index.php/#purchase-order
ราคาสุดคุ้ม  1,500  บาท
http://fastcoding.phpcodemania.com

PHP Array จัดเรียงข้อมูลตามราคาด้วย ฟังก์ชั่น array_multisort()

โดย SONGCHAI SAETERN
จัดเรียงข้อมูลตามราคาด้วย PHP array_multisort()

โค้ดตัวอย่างนี้จะทำการจัดเรียงข้อมูลในตัวแปร $inventory โดยที่ให้จัดเรียงตามราคา
<?php

$inventory = array(
   array("type"=>"fruit", "price"=>3.50),
   array("type"=>"milk", "price"=>2.90),
   array("type"=>"pork", "price"=>5.43),
);
$price = array_column($inventory, 'price');
array_multisort($price, SORT_ASC, $inventory);
echo '<pre>';
print_r($inventory);
echo '</pre>';
?>


ผลลัพธ์
จัดเรียงแบบค่าน้อยไปมา array_multisort($price, SORT_ASC, $inventory);



จัดเรียงแบบค่ามากไปน้อย array_multisort($price, SORT_DESC, $inventory);


ที่มา

https://stackoverflow.com/questions/1597736/how-to-sort-an-array-of-associative-arrays-by-value-of-a-given-key-in-php

PHP CI MANIA - PHP Code Generator 

โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม"
 http://fastcoding.phpcodemania.com/index.php/#purchase-order
ราคาสุดคุ้ม  1,500  บาท
http://fastcoding.phpcodemania.com

PHP Array การค้นหาข้อมูลใน Array ด้วย in_array() และ array_intersect()

โดย SONGCHAI SAETERN
การค้นหาข้อมูลใน Array

ถ้าเรารับข้อมูลที่ส่งเข้ามาผ่าน $_POST และได้ข้อมูลตัวอย่างเก็บไว้ใน $php_func ดังนี้
<?php
$php_func = array (
  'id' => '',
  'order_date' => 'to_thai_full_month',
  'order_user_id' => '',
  'order_remark' => '',
  'order_status' => '',
);
echo "ผลลัพธ์ : " , in_array('to_thai_full_month', $php_func).'<br/>';
?>
เมื่อต้องการค้นหาว่ามีการส่งค่า to_thai_full_month มาด้วยหรือไม่เราสามารถใช้ฟังก์ชั่น in_array() ค้นหาข้อมูลในตัวแปร เมื่อพบจะได้ผลลัพธ์ดังนี้



แต่ถ้าเกิดว่า เราต้องการค้นหาหลายค่า การจะวนลูปด้วย foreach() แล้วตรวจทีละค่าก็ได้ หรือเราจะใช้ array_intersect() ที่เป็นฟังก์ชั่นของ PHP ที่มีมาให้อยู่แล้วก็ย่อมสะดวกรวดเร็วกว่า

<?php
$php_func = array (
  'id' => '',
  'order_date' => 'to_thai_full_month',
  'order_user_id' => '',
  'order_remark' => '',
  'order_status' => '',
);
$date_key = array('to_thai_full_month', 'to_thai_short_month', 'to_thai_date');
$has_date_func = array_intersect($php_func, $date_key);
if ( !empty($has_date_func) ) {
    echo "<b>ผลลัพธ์ :</b><br/>";
    foreach($has_date_func as $field=>$func){
        echo "<br>$field => $func";
    }
}
?>

เมื่อดูผลลัพธ์ ก็จะได้ข้อมูลออกมาเป็นอาร์เรย์สามารถนำไปใช้ทันที



ฟังก์ชั่นที่เกี่ยวข้อง

in_array()
array_intersect()
empty()
foreach()


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

PHP CI MANIA - PHP Code Generator 

โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม"
 http://fastcoding.phpcodemania.com/index.php/#purchase-order
สนใจสั่งซื้อราคาสุดคุ้ม 1,500 บาท
http://fastcoding.phpcodemania.com

วิธีการนำข้อมูลใน Dropdown List ที่มีเครื่องหมายคั่นกลาง ไปแสดงใน div แบบแยกทีละรายการ (Option List)

โดย CyberMAN
วิธีการนำข้อมูลใน Dropdown List ไปแสดงใน div ที่มีไอดี oupput ด้วย JavaScript มีดังนี้

1. ใช้ ฟังก์ชั่น split() เพื่อแยกข้อมูลเป็นอาร์เรย์
2. และใช้ map() เพื่อวนลูปสร้างข้อความใหม่
3. สุดท้ายเปลี่ยนอาร์เรย์เป็นข้อความตามเดิมด้วย join() พร้อมกับขึ้นบรรทัดใหม่ <br/>



<form action="dropdown.php" method="POST">
  <select name='QR' id="QR" onChange="outputValue(this)">
    <option value='324|56|70'>324|56|70</option>
    <option value='4|3567|00'>4|3567|00</option>
    <option value='434|5640|'>434|5640|</option>
    <option value='6|76|57|50'>6|76|57|50</option>
  </select>
</form>
<div id='output'></div>


<script>
function outputValue(item){
 var opt_val = item.value;
 //แยกข้อความเป็นอาร์เรย์
 var arr_number = opt_val.split('|');
 //วนลูปแทรกข้อความ
 var newarray = arr_number.map((num, i) => {
   return 'ตัวเลขชุดที่ '+ (i+1) + ' : ' + num;
 })
 //ขึ้นบรรทัดใหม่
 var new_text = newarray.join('<br/>');
    document.getElementById('output').innerHTML = new_text;
}
</script>


ข้อมูลเพิ่มเติม
https://www.w3schools.com/jsref/jsref_split.asp
https://www.w3schools.com/jsref/jsref_map.asp
https://www.w3schools.com/jsref/jsref_join.asp








PHP CI MANIA - PHP Code Generator 

โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม"
http://fastcoding.phpcodemania.com/index.php/#purchase-order
สนใจสั่งซื้อราคาสุดคุ้ม 1,500 บาท
http://fastcoding.phpcodemania.com

หาจำนวน factorial ของตัวเลขที่กำหนด (สุ่มเลขแบบไม่ซ้ำ)

โดย SONGCHAI SAETERN
การทำงานจะเป็นการนำจำนวนเลขมาหาความยาว เพื่อหา factorial ของเลขชุดนั้นๆ จากนั้นก็นำมาคำนวณหาจำนวนเลขซ้ำเพื่อลดจำนวนผลลัพธ์ที่ต้องการ

<?php
// หาจำนวน factorial ของตัวเลขที่กำหนด
function factorial_of_number($n){
$x = 1;
for($i=1;$i<=$n-1;$i++)
{
$x *= ($i+1);
}
return $x;
}
// สร้างข้อมูล Array ตามจำนวน factorial ที่ไม่ซ้ำกัน
function generate_factorial_number($number){
$num_arr = str_split($number); // แยกตัวเลขแต่ละตัวให้เป็น Array 1 ชุด
$num_len = count($num_arr); // นับจำนวนตัวเลข
$factorial = factorial_of_number($num_len); // หาค่า factorial
$operator = $factorial / $num_len; //<-- สูตรสำหรับใช้ คำนวณจำนวนไม่ซ้ำ
$count_group = count(array_unique($num_arr)); //<-- นับจำนวนตัวเลขที่ ไม่ซ้ำกัน
$case = $count_group - 1; // <-- หาสูตรที่ใช้คำนวณจำนวน factorial ไม่ซ้ำกัน
if($count_group == $num_len){ // ถ้าจำนวนไม่ซ้ำกันเลข
$loop = $num_len * $operator;
}else{
switch($case){
case 0:
$loop = 1; // จำนวนซ้ำกันทุกตัว
break;
case 1:
$loop = $num_len; // จำนวนซ้ำกัน จนเหลือ 1 ตัว
break;
default:
$loop =  ($num_len - $case) * $operator; // จำนวนซ้ำกันบางตัว
break;
}
}
// echo '<hr/>Number = ', $number;
// echo '<br/>Factorial = ', $factorial;
// echo '<br/>Operator = ', $operator;
// echo '<br/>Case : ', $case;
// echo '<br/>Loop : '  . $loop;
// echo '<hr/>';
$arr_number = array();
while(count($arr_number) < $loop){
shuffle($num_arr); // สุ่มตำแหน่งใหม่
$new_num = implode("", $num_arr); //นำ Array ที่สุ่มมารวมกันเป็นตัวเลขใหม่
if(!in_array($new_num , $arr_number)){ // ตรวจสอบ ถ้ายังไม่เก็บไว้ถึงจะเพิ่มเข้าไป
$arr_number[] = $new_num; // เก็บตัวเลขใหม่ที่ได้ในตัวแปรอาร์เรย์ $arr_number
}
}
sort($arr_number);
return $arr_number;
}
// กำหนดตัวเลขที่ต้องการ
$number = 1442;
$output = generate_factorial_number($number);
// แสดงตัวอย่างข้อมูลผลลัพธ์
echo "<h3>Factorial ที่ไม่ซ้ำกันของเลข $number มีจำนวนทั้งสิ้น  " . count($output) . " ตัว</h3>";
echo '<pre>';
print_r($output);
echo '</pre>';
?>





PHP CI MANIA - PHP Code Generator 

โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม"
 http://fastcoding.phpcodemania.com/index.php/#purchase-order
สนใจสั่งซื้อราคาสุดคุ้ม 1,500 บาท
http://fastcoding.phpcodemania.com