ข้ามไปที่เนื้อหาหลัก

บทความ

กำลังแสดงโพสต์จาก กุมภาพันธ์, 2018

PHP Array นำข้อมูล Array วันที่ หลายๆวัน มาหาช่วงวันที่ต่อเนื่อง

ประกาศค่าตัวแปรวันที่ $results = array(); $all_date = array( '2017-10-31', '2017-12-29','2017-12-30','2017-12-31','2018-01-01','2018-01-02', '2018-03-12', '2018-03-13', '2018-03-14', '2018-03-15', '2018-02-28', '2018-03-01', '2018-03-02', '2018-03-07', '2018-03-09', '2019-03-20', '2019-03-21' ); ผลลัพธ์ที่ต้องการ สร้างตัวแปรเดือนแบบย่อ $short_month = array('01' => 'ม.ค.', '02' => 'ก.พ.', '03' => 'มี.ค.', '04' => 'เม.ย.', '10' => 'ต.ค.', '12' => 'ธ.ค.'); 1. เรียงวันที่จากน้อยไปมากเพื่อวนลูป sort($all_date);  2. นับจำนวนวัน เพื่อใช้ตรวจสอบกรณีต่อเนื่องกันทั้งหมด $num_date = count($all_date); 3. ตรวจสอบว่า วันแรก และวันสุดท้าย ห่างกันเท่ากันหรือไม่ ถ้าเท่ากัน แสดงว่าต่อเนื่องทั้งห...

PHP CodeIgniter เพิ่ม form validation สำหรับวันที่รูปแบบไทย DD/MM/YYYY HH:MM:SS

เพิ่ม datetime สำหรับ รูปแบบสากล  YYYY-MM-DD HH:MM:SS datetime_th สำหรับรูปแบบไทย DD/MM/YYYY HH:MM:SS <?php defined('BASEPATH') OR exit('No direct script access allowed'); class MY_Form_validation extends CI_Form_validation { function __construct() { parent::__construct(); } public function datetime($str) { $date_time = explode(' ',$str); if(sizeof($date_time)==2) { $date = $date_time[0]; $date_values = explode('-',$date); if((sizeof($date_values)!=3) || !checkdate( (int) $date_values[1], (int) $date_values[2], (int) $date_values[0])) { return FALSE; } $time = $date_time[1]; $time_values = explode(':',$time); if((int) $time_values[0]>23 || (int) $time_values[1]>59 || (int) $time_values[2]>59) { return FALSE; } return TRUE; } return FALSE; } public function datetime_th($str) { $date_time = explode(' ',$str); if(sizeof($date_time)==2) { $date = $date_time[0]; $date_values = ex...

แก้ปัญหาเวลาแก้ไข JavaScrip, CSS อัพขึ้นโฮสต์แล้วต้องกด CTRL + F5 เพื่อโหลดไฟล์ใหม่ทุกครั้ง

แก้ปัญหาเวลาแก้ไข JavaScript, CSS อัพขึ้นโฮสต์แล้วต้องกด CTRL + F5 เพื่อโหลดไฟล์ใหม่ทุกครั้ง

PHP Booking ตัวอย่างการแสดงข้อมูลการจองห้อง ของช่วงเวลาต่างๆในแต่ละวัน

#PHP #Booking #Schedule ตัวอย่างการแสดงข้อมูลการจอง ของช่วงเวลาต่างๆในแต่ละวัน ของห้องแต่ละห้อง - วนลูปแสดงตามจำนวนห้อง - วนลูปแสดงข้อมูลตามช่วงเวลา start , end ที่บันทึกไว้ - หน้าตาแบบสะอาดๆ ดูดีขึ้นกว่าเวอร์ชั่นก่อน วิดีโอแนะนำการเขียนโค้ดทีละขั้นตอน ดูซอร์สโค้ดเวอร์ชั่นเก่าได้ ที่นี่ สำหรับโค้ดที่ปรับแต่งแล้ว จะได้หน้าตาดังนี้ โครงสร้างฐานข้อมูลตัวอย่างทั้งหมด 2 ตาราง สำหรับซอร์สโค้ดที่ปรับแต่งเรียบร้อย ดูหน้าตาสะอาดสะอ้านขึ้นนั้น หากท่านใดสนใจก็สามารถเลี้ยงกาแฟแอดมินได้ ที่นี่ ครับ   หลังจากเลี้ยงกาแฟแล้วส่ง Inbox เพื่อขอรับโค้ด ที่นี่ [ SQL สำหรับสร้างฐานข้อมูลทดสอบโปรแกรม ] -- Dumping database structure for tobedev_example CREATE DATABASE IF NOT EXISTS `tobedev_example` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */; USE `tobedev_example`; -- Dumping structure for table tobedev_example.tb_booking CREATE TABLE IF NOT EXISTS `tb_booking` ( `id` int(11) NOT NULL AUTO_INCREMENT, `booking_date` date NOT NULL COMMENT...

เรียกฟังก์ชั่น click ใน jQuery หลังโหลด AJAX มาแล้วไม่ทำงาน

ลืมตลอด JavaScript พวก onclick onchange ต่างๆ  ถ้าสร้างไว้ก่อนจะไม่มีผลกับ element ที่โหลดมาด้วย AJAX ถ้าจะให้มันทำงานต้องดักด้วยการเพิ่ม .on() $(document).on('click', ' # target_button ', function(){       //Your code here }); เช่นเดิมทีหน้าหลักมีแค่ <div id="main_content">  <!-- AJAX Content </div> แล้วเมื่อโหลดข้อมูล Ajax เรียบร้อย <div id="main_content">   <button id=" target_button">TEST</button> </div>  <script>  $("# target_button").click(function(){      alert("555+ เงี๊ยบปิ๊ง!!" ); }); </script>  ในส่วน Script ต้องใช้ .on เข้าช่วย <script> $(document).on('click', '#target_button', function(){       alert('เย้ๆๆๆ ทำงานแล้ว'); }); </script> ก็เอวัง ด้วยประการฉะนี้แล

PHP Array การแทนที่ข้อมูล Array ชุดแรก ด้วยข้อมูล Array ชุดใหม่ แบบ associative

เมื่อเรามีข้อมูล Array อยู่แล้วชุดหนึ่ง แต่ในการทำงานครั้งต่อไปต้องการนำ Array ชุดใหม่ใส่เพิ่มเข้าไปจะทำอย่างไร? ฟังก์ชั่นที่เกี่ยวกับ Array ฟังก์ชั่นแรกที่โผล่ขึ้นในหัวก็คือ array_push(); แต่เดี๋ยวก่อน!! มันเพิ่มเข้าไปจริง แต่มันไม่แทนที่ Array ชุดเดิมที่ key เหมือนกัน การเพิ่ม Array มิติใหม่เข้าไปอีกชุดหนึ่ง <?php $a = array('a' => 'hello', 'b' => 'world'); $b = array('a' => 'person', 'b' => 'thing', 'c'=>'other', '15'=>'x'); echo '<pre>', print_r(array_push($a, $b), true),'</pre>'; ?> Array (     [a] => hello     [b] => world     [0] => Array         (             [a] => person             [b] => thing             [c] => other             [15] => x         ) ) แต่ที่ต้องการคือแบบนี้ กรณีที่มีข้อมูลเดิมอ...

เขียนโปรแกรม PHP แก้สมการรูปภาพ

ผลลัพธ์ที่ได้ รองเท้า 1 คู่       = 10 คนคล้องนกหวีด  = 5 นกหวีด 2 อัน      = 4 นกหวีด 1 อัน      = 2 คนไม่มีนกหวีด    = 3 คำตอบคือ = 10 + 3 x 2 = 16 โค้ด PHP ถอดสมการตามภาพ <?php $a = 0;//รองเท้า1คู่ $b = 0;//คนกับนกหวีด $c = 0;//นกหวีด 2 อัน $d = 0;//คนไม่มีนกหวีด $e = 0;//นกหวีด 1 อัน $resultA = 30; $resultB = 20; $resultC = 13; $answer = 0;//คำตอบที่ต้องการ //สมการแรก รองเท้า 1 คู่ ($a + $a + $a == $resultA) $checkA = 0; while($checkA != $resultA){     $a++;     $checkA = $a + $a + $a; } echo '<br/> รองเท้า 1 คู่ = ' . $a; //สมการที่ 2 คนคล้องนกหวีด $a + $b + $b == $resultB $checkB = 0; while($checkB != $resultB){     $b++;     $checkB = $a + $b + $b; } echo '<br/> คนคล้องนกหวีด = ' . $b; //สมการที่ 3 นกหวีด 2 อัน b + $c + $c == $resultC $checkC = 0; while($checkC...

fsockopen(): unable to connect to ssl://smtp.gmail.com:465

หลังจากที่แชร์วิธี การเขียนโปรแกรมส่งอีเมลด้วย PHP CodeIgniter ไปเมื่อหลายวันก่อน พอลองอัพขึ้นทดสอบบนเว็บโฮสติ้งเท่านั้นแหละ ปัญหาก็เกิดขึ้นมาโดยที่ตอนรันบน Localhost ไม่ยักกะเจอ!! fsockopen(): unable to connect to ssl://smtp.gmail.com:465 ก็เลยลองค้นหาดูว่า มีใครเจอเหมือนกันบ้างไหม แล้วเขาแก้ไขมันด้วยวิธีใด และแล้วก็เจออยู่ 2 วิธีด้วยกันดังต่อไปนี้ วิธีที่ 1 จับใส่ไฟล์ config   ( application/config/email.php ) วิธีที่ 2 เอา config มาใส่ในตอน  $this->load->library('email'); ซึ่งดูจากทั้ง 2 วิธีแล้ว ถ้าวิธีที่ 1 สามารถใช้งานได้จริงก็ถือว่าง่ายกว่าเยอะ ไม่ต้องคอนโหลด config ทุกครั้งที่เรียกใช้ไลบรารี่ email ส่วนวิธีที่ 2 ถ้าหากต้องการส่งอีเมลด้วยหลาย user ก็คงต้องใช้ตามนี้ หรืออาจจะใช้วิธีสร้าง MY_Email.php  ไว้ที่ application/core เพื่อรับค่าเพิ่มเติมกรณีต้องการเปลี่ยน user แต่ละครั้งที่ส่ง :: แหล่งอ้างอิง :: Sending email with gmail smtp with codeigniter email library https://forum.codeigniter.com/thread-23655.html fsockopen():...

PHP กับการเขียนโปรแกรมส่ง Email ด้วย CodeIgniter - email library

PHP Sending email via SMTP server จากบทความการตั้งค่าเพื่อเขียนโปรแกรม ส่งอีเมล์ด้วย PHP วิธีเปิดใช้งาน Authen Account ของ Gmail   ซึ่งเป็นการส่งผ่าน PHPMailer แต่สำหรับ CodeIgniter 3 สามารถเรียกใช้งานไลบรารี่ email ได้เลย ซึ่งมีการเขียนแนะนำไว้ดังนี้ ที่มา : https://stackoverflow.com/questions/37492272/how-to-use-phpmailer-in-codeigniter และก็ลองค้นหาบทความเพิ่มเติมเกี่ยวกับการเขียนโปรแกรมส่งอีเมลด้วย PHP CodeIgntier ผ่าน Gmail ก็ได้ตัวอย่างโค้ดดังนี้ //Load email library $this -> load -> library ( 'email' ); //SMTP & mail configuration $config  = array(      'protocol'   =>  'smtp' ,      'smtp_host'  =>  'ssl://smtp.googlemail.com' ,      'smtp_port'  =>  465 ,      'smtp_user'  =>  'user@gmail.com' ,      'smtp_pass'  =>  'gmail_password' , ...

ค้นหาในเว็บไซต์

เนื้อเพลงที่ได้รับความนิยม ในรอบสัปดาห์

แจกโค้ด PHP : รวมลิงค์ แจกฟรี!! ตัวอย่างโปรเจ็กต์ ที่พัฒนาด้วย PHP

       สำหรับหลายท่านที่ขอโค้ดเข้ามาทาง Inbox ของเฟซบุ๊กแฟนเพจ หรือถามถึงระบบต่างๆหลังไมค์มานั้น ส่วนใหญ่ก็มีแจกอยู่แล้วในเว็บบอร์ด ThaiCreate.Com นะครับ  และด้านล่างนี้ก็เป็น Source Code PHP ระบบต่างๆ ที่มีเหล่าผู้ใจดีแจกฟรี!! ให้นำไปลองใช้ลองศึกษากันครับ แจกฟรี  !! ตัวอย่างการ  PHP  Booking # จองห้องประชุม  ผ่านเว็บครับ http://www.thaicreate.com/php/forum/090558.html ระบบแบบสอบถาม https://www.thaicreate.com/php/forum/099342.html แจก code!! การทำประเมินออนไลน์มี ไว้สำหรับพัฒนาต่อยอด https://www.thaicreate.com/php/forum/102203.html แจกฟรี PHP CodeIgniter CMS ให้ทุกท่านได้ลอง (รองรับ Responsive) http://www.thaicreate.com/php/forum/122929.html โดย : https://www.cszcms.com/ แจก PHP : ระบบยืม-คืนเอกสาร (จากตัวอย่าง เอกสารข้อมูลวัตถุดิบสินค้า) http://www.thaicreate.com/php/forum/103428.html แจกระบบ PHP Shopping Cart ระบบตะกร้าสินค้า ระบบสั่งซื้อ มีระบบตัดสต๊อก, สั่งซื้อวัตถุดิบคงเหลือ ht...

PHP CI MANIA : ตอนที่ 16 วิธีสร้างเว็บเพจที่มีแบบฟอร์มคำนวณผลรวมอัตโนมัติ เมื่อป้อนข้อมูลในช่อง INPUT

การคำนวณผลรวม เมื่อเปลี่ยนแปลงตัวเลขใน Textbox หากเขียนโค้ดเองก็เพียงไม่กี่บรรทัด แต่ถ้าหากใช้ PHP CI MANIA เราสามารถเพิ่มการตั้งค่าได้ดังนี้ 1. ในแท็ป " ตั้งค่า " เลื่อนไปส่วนที่ 5 ด้านล่างสุด " ข้อมูลตารางรายการ ( Detail ) " 2. เพิ่ม INPUT สำหรับแสดงราคารวม โดยคลิกที่ปุ่มสีเขียว ในตัวอย่างนี้จะสร้างไว้ต่อจาก ฟิลด์ ราคา  โดยกำหนดค่าในช่องคอลัมน์ Name เป็น total_price=>ราคารวม สังเกตุว่าจะมี => คั่นกลาง        ด้านซ้าย total_price ใช้เป็นไอดีอ้างอิงเพื่อนำราคารวมไปแสดงผล        ด้านขวา ราคารวม ใช้เป็นป้ายชื่อหน้าช่องแสดงผลรวม 3. กำหนด Action ให้กับฟิลด์ที่เมื่อเปลี่ยนค่าแล้วจะให้คำนวณผลรวมอัตโนมัติ ในที่นี้คือ ฟิลด์จำนวน 4. กำหนดค่าต่างๆให้กับ Action ของฟิลด์ที่เลือก     4.1  กำหนด Events จะเลือก onkeyup เพื่อจับเหตุการณ์เมื่อพิมพ์ตัวเลขระบุจำนวนสั่งซื้อ ให้คำนวณค่าราคารวมทันที     4.2  INPUT 1  ให้ระบุฟิลด์ที่ใช้ในการคำนวณตัวที่ 1 ที่นี้คือ ฟิลด์จำ...

ระบบบันทึกการปฏิบัติงานประจำวัน ด้วย PHP + CodeIgniter Framework

สิ่งที่จะได้เรียนรู้ 1. การใช้งาน CodeIgniter Framework การสร้าง Model, View, Controller การสร้างตัวแบ่งหน้าด้วย Pagination ที่มีให้แล้ว การสร้าง Method/Function เพื่อลดความซ้ำซ้อนของโค้ด  2. การออกแบบฐานข้อมูล หลักการ Normalization หรือ การแยกข้อมูลในกระดาษ ให้มีโครงสร้างเป็นระเบียบอยู่ในฐานข้อมูล เพื่อลดความซ้ำซ้อนของข้อมูล (ข้อมูลซ้ำกันมากๆอย่างไม่จำเป็นขนาดก็ใหญ่ตามไปด้วย) การสร้างฐานข้อมูลด้วย PostgreSQL และจัดการข้อมูลด้วย PgAdmin 3 การเชื่อมโยงตารางที่เกี่ยวข้องกันด้วยคำสั่ง JOIN เพื่อแสดงชื่อหรือข้อมูลต่างๆของหลายๆตารางมาแสดงผลรวมกัน 3. การพิมพ์รายงานในรูปแบบ PDF  การเรียกใช้ Libraries จากที่อื่นเข้ามาใน CodeIgniter การใช้งาน TCPDF สร้างเอกสาร PDF จาก HTML 4. อื่นๆ การใช้งาน jQuery การใช้งาน Bootstrap การเขียน JavaScript แบบ OOP

PHP เบื้องต้น | รวมวิดีโอสอนเขียนโปรแกรม PHP & MySQL

1. พื้นฐาน PHP     1.1  โครงสร้างการเขียน PHP ร่วมกับ HTML     1 .2  Selection Structure : การเขียนโปรแกรมแบบทางเลือก     1. 3  ตัวแปร (Variable) และ ค่าคงที่ (Constant)     1.4  ตัวดำเนินการ (Operator)     1.5  เครื่องหมาย Single Quote / Double Quote และ Escape Sequence     1.6  Repetition Structure (การเขียนโปรแกรมวนซ้ำ)          1.7  การแทรกโค้ PHP ส่วนต่างๆของ HTML     1.8  PHP Function 2. PHP MySQLi CRUD : การจัดการฐานข้อมูล MySQL เบื้องต้น      2.1 : การบันทึกข้อมูลด้วย MySQLi Function      2.2 การค้นหาและแสดงข้อมูลในรูปแบบตาราง 1/2     2.3  การค้นหาและแสดงข้อมูลในรูปแบบตาราง 2/2      2. 4 การแก้ไขข้อมูลด้วยคำสั่ง UPDATE     2. 5 การลบข้อมูลจากฐานข้อมูล     2. 6 การป้องกัน SQL Injection ด้วยการใช้ prepare และ bindparam           2.7 กา...

วิธีตั้งเวลา Backup MySQL อัตโนมัติ เพื่อสำรองข้อมูลไว้ใช้เมื่อต้องการเรียกคืนภายหลัง

ทดสอบแล้วใช้ได้ แต่ใช้จริงต้องปรับตำแหน่งเรียก mysqldump ที่ต่างกัน OS : Windows Server เช่นถ้าใช้ wamp เป็นตัวติดตั้งก็จะอยู่ที่ C:\wamp \bin\mysql\mysql5.5.24\bin\mysqldump ถ้าติดตั้ง MySQL เพียวๆ ก็คงต้องหาตำแหน่งที่ถูกต้องของเซิร์ฟเวอร์แต่ละเวอร์ชั่น เช่น C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqldump การจะกำหนดเวลาแบ็กอัพนั้น Schedule ของ Windows Server ให้เรียกไฟล์ xxxxx.bat เพื่อทำงานตามเวลาที่กำหนด  (หากใช้ลีนุกซ์ก็คงจะใช้ cronjob และจะสะดวกกว่าหากจัดการด้วย webmin ) @echo off echo Running dump... set MYDATABASE=xxxxxxx set MYSQLUSER=root set MYSQLPASS=xxxxxxx set BACKUPFILE="F:\Backup\MySQL\%MYDATABASE%_%date:~10,4%-%date:~4,2%-%date:~7,2%_TIME.%time:~0,2%.%time:~3,2%.sql" C:\wamp\bin\mysql\mysql5.5.24\bin\mysqldump -u%MYSQLUSER% -p%MYSQLPASS% --result-file=%BACKUPFILE% %MYDATABASE% echo Done! %BACKUPFILE% หลังจากทดสอบแบ็กอัพฐานข้อมูลขนาด 1GB ใช้เวลาประมาณแค่ 1 นาทีเท่านั้น ส่วนผลข้างเคียงหรือปัญหาอื่นๆยังไม่ทราบ เพราะเป็นการทำงนผ่าน mysqldump ก็ไ...

PHP สำหรับผู้เริ่มต้น : การคำนวณผลรวม เมื่อเปลี่ยนแปลงตัวเลขใน Textbox

การคำนวณผลรวม เมื่อเปลี่ยนแปลงตัวเลขใน Textbox จะเป็นการใช้ JavaScript วนลูปตามชื่อของ textbox ( name="price[]" ) เพื่อนำค่าที่ได้บวกเพิ่มเข้าไปในตัวแปร sum แล้วก็แสดงผลในช่องผลรวม sumprice <html> <head> <meta charset="UTF-8"> <script language="JavaScript"> function fncSum() { var num = ''; var sum = 0; for(var i=0;i<document.frmprice['price[]'].length;i++){ num = document.frmprice['price[]'][i].value; if(num!=""){ sum += parseFloat(num); } } document.frmprice.sumprice.value = sum; } </script> </head> <body> <h2>การคำนวณผลรวม เมื่อเปลี่ยนแปลงตัวเลข</h2> <form name="frmprice" method="POST"> <table> <?php for($i=1;$i<=5;$i++){ ?> <tr> <td><input type="text" name="price[...

ระบบวัสดุคงเหลือ - การตีราคาสินค้าคงเหลือด้วยวิธีราคาทุน (Inventory Costs Method)

การตีราคาสินค้าคงเหลือด้วยวิธีราคาทุน (Inventory Costs Method) หลังจากได้อ่านบทความในเว็บต่างๆก็สรุปได้ดังนี้ 1. FIFO เข้าก่อน-ออกก่อน เหมาะสำหรับการตัดสต๊อกที่ใช้สำหรับของที่มีวันที่หมดอายุกำกับไว้ อาจจะเนื่องด้วยพนักงานสต๊อกจะต้องคอยเช็ควันที่หมดอายุบนสินค้าเสมอๆอยู่แล้ว 2. LIFO เข้าหลัง-ออกก่อน เหมาะสำหรับการตัดสต๊อกสินค้าที่ตกเทรนเร็วแบบคอมพิวเตอร์ หรือสินค้าเทคโนโลยีอื่นๆ ซึ่งส่วนใหญ่จะทำโปรโมชั่นมาล่อตาล่อใจให้ลูกค้าซื้อรุ่นใหม่ๆ ดังนั้นพนักงานก็ต้องตัดสต๊อกตัวที่ใหม่ที่สุดออกก่อน เพราะทิ้งไว้นานไปราคาทุน ณ ปัจจุบันจะไม่ตรงกับราคาที่ขายไป 3. Weighted Average ถัวเฉลี่ยน้ำหนัก เหมาะกับสินค้าที่ไม่มีวันหมดอายุกำกับ และราคาขึ้นลงไม่มากนัก (คอมพิวเตอร์หรือสินค้าเทคโนโลยีจะขึ้นลงทีเป็นหลักร้อยหลักพัน) ซึ่งเหมาะกับการนำมาใช้ทำสต๊อกวัสดุคงเหลือของสำนักงาน ปัญหาของการใช้ Weighted Average หรือการถัวเฉลี่ยราคาทุนต่อหน่วย จะมีอยู่ 2 รูปแบบ 1. แบบ Periodic Inventory เป็นการคิดราคาทุนถัวเฉลี่ยของสินค้าคงเหลือปลายงวด นั่นก็คือ บันทึกการรับเข้าด้วยราคาต่อหน่...

SELECT ซ้อน SELECT (GROUP BY, HAVING, SUBQuery, COUNT)

เมื่อต้องการนับจำนวนรายการตามเงื่อนไข แต่ก็จำเป็นต้องใช้ GROUP BY เพราะการใช้ COUNT + DISTINCT ไม่สามารถดึงข้อมูลตามเงื่อนไขได้  อยากจะนับจำนวนสมาชิกที่ชำร ะเงิน ถ้าใช้ COUNT() ก็จะออกมาหมด ทำให้ได้จำนวนเกินจากความเป ็นจริง เพราะสมาชิกบางคนชำระมากกว่ า 1 ครั้ง ก็เลยต้องเอามา GROUP กันด้วย รหัสสมาชิกก่อน เพื่อตัดเรคอร์ดที่ซ้ำกันออ กไป สมาชิกจะชำระกี่ครั้ง ก็นับเป็น 1 คน (เพราะเป็นสมาชิกคนเดียวกัน ) จะเห็นว่า จะได้ยอดที่ถูกต้อง 139 แต่ข้อมูลมันแจกแจงรายการต้ อง 139 แถว ซึ่งเราไม่ได้อยากได้รายละเ อียด แค่อยากนับจำนวนเท่านั้นจะท ำไงล่ะทีนี้ ก็จัดการ SELECT ครอบ SELECT ไว้เลย ซึ่งก็คือการทำ SubQuery นั่นเอง ก็จะออกมาเรคอร์ดเดียว เป็นจำนวนที่ต้องการนำไปใช้ งานได้ทันที จริงๆแล้วเราใช้ DISTINCT ได้นะ ถ้าเงื่อนไขมีแค่เท่านี้ ไม่จำเป็นต้อง SubQuery ดูสิ พอนับแบบตัดรายการซ้ำกันออก ก็ได้ 139 พอดิบพอดีเลย ใช่ครับ ถ้าเงื่อนไขมีเพียงเท่านี้ก ็ใช้ได้เลย แต่ถ้ามีเงื่อนไขอื่นล่ะ??? ถ้าจะนับเฉพาะสมาชิกที่ชำระ เงินตั้งแต่ 150...

PHP ระบบบริหารจัดการ พล็อตนิยาย - ตอนที่ 1

PHP Fiction Management System   โปรเจ็กต์นี้จะสร้างเป็น "ระบบบริหารจัดการพล็อตนิยาย" แบบง่ายๆ มาเล่าสู่กันฟังครับ มีอยู่ช่วงหนึ่งที่ผมสนใจการเขียนนิยาย และค้นหาข้อมูลเพิ่มเติมเกี่ยวกับการเขียนนิยาย และได้พบกับโปรแกรมหนึ่งที่ช่วยงานด้านการเขียนนิยายให้เป็นเรื่องที่ง่ายขึ้น แต่จากที่ได้อ่านรีวิวแล้วดูเหมือนว่า โปรแกรมช่วยเขียนนิยายนี้ ไม่จะไม่ค่อยรองรับภาษาไทย แต่ผมก็ยังไม่ได้ลองมาดาวน์โหลดมาลองใช้งานดูนะครับ แต่รู้สึกชอบเครื่องมือนี้ เลยอยากลองพัฒนาโดยถอดคุณสมบัติพื้นฐานมาใช้งานดู ว่าจะใช้กับงานเขียนนิยายได้จริงรึเปล่า ตัวอย่างระบบจัดการพล็อตเรื่อง เพื่อช่วยงานเขียนนิยาย หลังจากที่ได้นั่งคิดนอนคิด และหลับไปฝันไป จนในที่สุดก็ได้ฐานข้อมูลระบบบริหารจัดการพล็อตนิยายมาคร่าวๆ มาจนได้ โครงสร้างฐานข้อมูลตอนนี้อาจจะขี้เหร่ไปบ้าง แต่ในอนาคตก็คงจะพัฒนากันต่อไป   ตารางที่จะต้องสร้าง มีทั้งหมด ดังนี้ 1. รายชื่อนิยายทั้งหมด 2. แนวนิยายที่เขียน 3. พล็อตของแต่ละเรื่อง 4. ฉากเหตุการณ์ในแต่ละพล็อต 5. เนื้อเรื่องในแต่ละฉาก 6. รายชื่อตัวละครในนิยา...

การสร้างเว็บไซต์ในปี 2023 นั้นจะต้องคำนึงถึงอะไรบ้าง

การสร้างเว็บไซต์ในปี 2023 นั้นจะต้องคำนึงถึงความเปลี่ยนแปลงของเทคโนโลยีและแนวโน้มการใช้งานของผู้ใช้ใหม่ๆ ดังนั้น นี่คือเทคนิคที่สามารถช่วยให้การสร้างเว็บไซต์ในปี 2023 เป็นไปได้อย่างรวดเร็วและเป็นประสิทธิภาพ: 1. ใช้ Responsive Design: การออกแบบเว็บไซต์ให้สามารถปรับขนาดได้ตามขนาดของหน้าจอของอุปกรณ์ต่างๆ เช่น โทรศัพท์มือถือ แท็บเล็ต และคอมพิวเตอร์ เพื่อให้ผู้ใช้สามารถเข้าถึงและใช้งานได้ง่ายและสะดวก 2. ใช้โครงสร้างของ HTML5: การใช้โครงสร้าง HTML5 จะช่วยให้เว็บไซต์ของคุณมีประสิทธิภาพและปรับปรุงในเรื่องของการเข้าถึงข้อมูล การใช้งานและความปลอดภัย 3. ใช้ CSS Grids หรือ Flexbox: การใช้ CSS Grids หรือ Flexbox จะช่วยให้ง่ายต่อการจัดหน้าเว็บไซต์ และสามารถปรับแต่งรูปแบบของเว็บไซต์ได้ง่ายขึ้น 4. ใช้ JavaScript Frameworks: การใช้ JavaScript Frameworks เช่น React, Angular, หรือ Vue.js จะช่วยให้สามารถสร้างเว็บไซต์ที่เป็น interactive และมีประสิทธิภาพได้อย่างรวดเร็ว 5. ใช้ Content Management Systems (CMS): การใช้ CMS เช่น WordPress, Joomla, หรือ Drupal จะช่วยให้สามารถสร้างเว็บไซต์ได้อย่างร PHP  C...

ค้นหาบล็อกนี้