บทความ

การแบ่งหน้าแสดงผลข้อมูล ด้วย PHP

รูปภาพ
การค้นหาข้อมูลและนำข้อมูลการแสดง ถ้าข้อมูลมีจำนวนมากไม่สะดวกในการดู จำเป็นต้องแบ่งหน้าออกเป็นหน้า ๆ เพื่อให้ดูได้สะดวก ลักษณะเดียวกับที่ Google นำผลการค้นหามาแสดงให้ดู หลักการ กำหนดข้อมูลของ limit โดยคำนวณจาก จำนวนที่ต้องการให้แสดงข้อมูลในแต่ละหน้า เพื่อนำไปใช้หาข้อมูลในฐานข้อมูลด้วยคำสั่ง SELECT จากนั้นนำผลที่ได้ไปใส่ไว้ในตัวแปร Array เพื่อนำไปแสดงในแต่ละหน้า ตัวอย่างโค้ด <?php $host= "  "; //ข้อมูลฐานข้อมูลของท่าน $usr= "  "; $pwd= "  "; $db= "  "; //ติดต่อฐานข้อมูล $cid = mysql_connect($host,$usr,$pwd);  mysql_select_db($db);  if (!$cid) { echo "ERROR: " . mysql_error() . "\n"; };  $query = "SELECT * FROM socialMedia ORDER BY fname, subject DESC";  $result = mysql_query($query) or die("Couldn't execute query" . mysql_error());  // student table  $numrows=mysql_num_rows($result);  if ($numrows == 0)   {  echo "<table>";  echo "<tr valign=\"top\"><td&g

การสร้างฟอร์มค้นหา และให้แสดงผลการค้นหาในหน้าเดียวกัน ด้วย PHP

รูปภาพ
เมื่อครั้งที่แล้ว พูดถึงเรื่อง การใช้ javascript สร้างฟอร์มอัตโนมัติ แล้วส่งค่าไปยัง PHP  คราวนี้จะเป็นการนำค่าที่ส่งมาตรวจสอบ และถ้าถูกต้องให้แสดงช่องสำหรับให้พิมพ์คำค้นหา และให้แสดงผลการค้นหาในหน้าเดียวกัน ในตัวอย่างนี้ ไม่ได้แสดงวิธีการค้นหาคำในฐานข้อมูล แต่แสดงคำค้นหาเท่านั้น การค้นหาในฐานข้อมูลเป็นเรื่องพื้นฐานที่ควรรู้อีกเรื่องหนึ่ง โค้ด PHP การตรวจสอบคำ การแสดงฟอร์มการค้นหา และแสดงผลในหน้าเดียวกัน <?php  if ($isPwdOK == ""){ $thisPwd = $_POST["myText"];  } if($thisPwd == "นฤมล" || $isPwdOK == "yes"){  echo "<H2>ยินดีต้อนรับ คุณ$thisPwd</H2>";  ?> <h2>ค้นหา</h2>  <form name="search" method="post" action="<?=$PHP_SELF?>">  ข้อมูลที่ต้องการค้นหา: <input type="text" name="find" />  <input type="hidden" name="searching" value="yes" />  <input type="hidden" name="isPwdO

การใช้ javascript สร้างฟอร์มอัตโนมัติ แล้วส่งค่าไปยัง PHP

รูปภาพ
ถ้าต้องการคลิกปุ่ม แล้วให้เกิดฟอร์มรับค่าโดยอัตโนมัติ (on the fly) เพื่อส่งค่าไปยัง PHP จะทำอย่างไร หลักการ ใช้สร้างปุ่มที่มีลักษณะเป็น Button และเมื่อคลิกปุ่ม ให้ไปเรียกใช้งานฟังก์ชันที่ใช้ javascript สร้างแบบฟอร์ม และส่งข้อมูลไปยังไฟล์ PHP วิธีการ สร้างไฟล์ html ดังนี้ (ไฟล์ jsFormDemo.html) <HTML>  <HEAD>  <meta http-equiv="Content-Type" content="text/html; charset=tis-620"> <script language="javascript" type="text/javascript"> function displayForm(){  var d=document;  var test_div = document.getElementById('pwdForm');  document.getElementById('pwdForm').innerHTML="รหัสเข้าใช้งาน";  var f = test_div.appendChild(d.createElement('form'));  var i=d.createElement('input');  var i2=i.cloneNode(false);  var br=d.createElement('br');  f.action='adminPage.php';  f.method='POST';  f.name='f';  i.type='text';  i.name='

การส่งค่า Array ผ่านแบบฟอร์มของ PHP

รูปภาพ
โจทย์: ต้องการส่งรายชื่อบุคคลซึ่งเก็บอยู่ในตัวแปร Array ของ PHP โดยส่งผ่านฟอร์ม จะทำอย่างไร ตัวแปรที่มีรายชื่อบุคคลคือ  $nameArray = array("ประสงค์","ประสิทธิ์","ประสาท"); หลักการ นำค่าที่อยู่ใน Array ไปใส่ในลง form element โดยให้อยู่ในรูปของ PHP Array แล้วส่งออกไปยังไฟล์ PHP ที่รับค่า วิธีการ ไฟล์แบบฟอร์ม (ไฟล์ myform.php) <html><body> <form method="POST" action="showarray.php"> <?php $nameArray = array("ประสงค์","ประสิทธิ์","ประสาท"); foreach($nameArray as $names){ //นำค่าไปใส่ form element   echo '<input type="hidden" name="members[]" value="'. $names. '">'; } ?> คลิกเพื่อส่งข้อมูล<br> <input type="submit" value=" ส่ง "> </body></html> แสดงผล   ในกรณีที่เราสร้างแบบฟอร์มสำหรับกรอกข้อมูล ก็สามารถรับค่าเข้ามาเป็น Array และส่งออกได้ทันที เช่น (ไฟล์ myform.h

ชื่อตัวแปรของ PHP ที่ประกอบด้วย ข้อความและตัวแปร

รูปภาพ
ชื่อตัวแปรใน PHP สามารถกำหนดให้มีตัวแปร ร่วมกับข้อความได้ ทำให้มีความยืดหยุ่น และนำไปประยุกต์ใช้ได้ในหลายกรณี ทำให้การเขียนโค้ดสั้นเข้า และมีประสิทธิภาพมากขึ้น รูปแบบที่ใช้คือ  ${"ข้อความ" . $ชื่อตัวแปร} ตัวอย่าง  ${"stAns" . $i} แนวทางการใช้งาน โค้ดต่อไปนี้ ให้พิมพ์ค่าตัวแปรที่กำหนด ผลที่ได้คือ คำตอบข้อที่ 1 คือ 20 คำตอบข้อที่ 2 คือ 10 คำตอบข้อที่ 3 คือ 30 คำตอบข้อที่ 4 คือ 10 คำตอบข้อที่ 5 คือ 50 โค้ดต่อไปนี้ รับข้อมูลจากแบบทดสอบ และนำมาตรวจกับเฉลย พร้อมแสดงคะแนน

การเรียงข้อมูลหลายแผ่นงานพร้อมกัน

รูปภาพ
ใน Excel ถ้ามีการจัดเก็บข้อมูลโครงสร้างเหมือนกัน แต่แยกเก็บในหลายแผ่นงาน เช่น อาจจะแยกเป็นรายภูมิภาค รายร้านค้า รายแผนก หรือ อื่น ๆ เป็นต้น การเรียงข้อมูลในแต่ละแผ่นงาน จะทำได้ช้า โดยเฉพาะถ้ามีแผ่นงานจำนวนมาก ยิ่งจะช้ามาก เนื่องจากต้องทำทีละแผ่นงาน การเรียงข้อมูลหลายแผ่นงานพร้อมกัน ต้องใช้ VBA หรือ แมโคร ช่วย วิธีการเรียกใช้งาน แมโคร ให้ดูเรื่อง การคัดลอกข้อมูลจากหลายแผ่นงาน ของ Excel ข้อควรระวัง เมื่อเรียงข้อมูลแล้ว จะย้อนกลับเดิมไม่ได้ ดังนั้นก่อนเรียงข้อมูลควรคัดลอกข้อมูลเดิมไว้ก่อน หรือคัดลอกข้อมูลไปที่อื่น แล้วจึงทำการใช้แมโครนี้ Sub SortAllSheets() 'ปรับแก้ตามข้อมูลของท่าน Const firstColToSort = "A" ' คอลัมน์แรก Const lastColToSort = "C"   ' คอลัมน์สุดท้าย Const keyCol = "A" ' คอลัมน์ที่จะให้เรียงข้อมูล ' คอลัมน์ที่มีข้อมูลทุกแถว 'อาจจะใช้ keyCol ก็ได้ แต่ไม่จำเป็น Const testCol = "C" ' แถวเริ่มต้นข้อมูล (หัวตาราง) Const startFrom = 1 Dim anyWS As Worksheet Dim sortRange As Range Dim sor

การคัดลอกข้อมูลจากหลายแผ่นงาน ของ Excel

รูปภาพ
ถ้าต้องการรวมข้อมูลที่มีโครงสร้างเหมือนกัน ในหลาย ๆ แผ่นงาน นำมารวมไว้ในแผ่นงานเดียวกัน เพื่อจะได้เปรียบเทียบ หรือเรียงข้อมูลใหม่ จะทำอย่างไร เช่น ในกรณีที่ใช้ Excel เก็บข้อมูลการใช้จ่ายเงินงบประมาณโครงการหลายโครงการ ( แผ่นงาน Excel คุมงบประมาณโครงการ หลายโครงการ )  แยกเป็นโครงการละ Sheet ต่อมาต้องการนำข้อมูลทั้งหมดมารวมกัน และเรียงข้อมูลตามวันที่ จะทำอย่างไร สมมติว่า ต้องการรวมข้อมูลจาก 2 แผ่นงาน ข้างล่างนี้ ไว้ด้วยกันเป็นแผ่นงานเดียว ข้อมูลแผ่นงานที่ 1 ข้อมูลแผ่นงานที่ 2 วิธีที่สะดวกที่สุด คือการลากดำแล้ว คัดลอก และวาง จะสะดวกที่สุด แต่ถ้ามี เป็นสิบ ๆ แผ่นงาน ไม่น่าจะสะดวกแน่ ใช้ Macro ข้างล่างนี้ จัดการนำข้อมูลทั้งหมดมารวมกัน ดูจะสะดวกกว่ามาก Sub Combine()     Dim J As Integer     On Error Resume Next     Sheets(1).Select     Worksheets.Add ' เพิ่ม Sheet เพื่อยังคงรักษาข้อมูลเดิมไว้ทั้งหมด     Sheets(1).Name = "รวมข้อมูลทั้งหมด"     ' คัดลอกส่วนหัวตารางส่วนบน ถ้าข้อมูลอยู่ในตำแหน่งอื่น ให้เปลี่ยนตามข้อมูลที่มี     Sheets(2).Activ

สูตรสำหรับเริ่มนับใหม่ เมื่อขึ้นรายการใหม่ ของ Excel

รูปภาพ
ในกรณีที่มีรายการหลายรายการ และต้องการเริ่มต้น 1 ใหม่ ในทุก ๆ รายการ จะทำอย่างไร จากตัวอย่างข้างล่าง ต้องการเขียนสูตรให้เริ่มต้นที่ 1 ที่รายการ ดินสอ ปากกา และสมุด หลักการ ใช้การเปรียบเทียบว่า ถ้าเซลล์ปัจจุบัน เหมือนกับเซลล์ก่อนหน้านั้น ให้เอา 1 บวกกับเลขลำดับก่อนหน้านั้น แต่ถ้าไม่เหมือน ก็ให้เริ่ม 1 ใหม่ วิธีการ ที่เซลล์ A2 ให้พิมพ์สูตร ดังนี้ =IF(B2=B1,A1+1,1) กด Ctrl + Enter (เพื่อให้ประมวลผลและยังคงเลือกอยู่ที่เซลล์ A2 เหมือนเดิม) ดับเบิ้ลคลิกที่ปุ่มเติมข้อมูล (Fill Handle) จะได้รายการดังภาพ สูตรนี้มีประโยชน์ ในกรณีที่มีหลาย ๆ รายการ เพิ่มขึ้นเรื่อย ๆ ให้เรียงข้อมูลก่อน แล้วจึงจัดลำดับ จะได้รายการชนิดเดียวกัน อยู่ด้วยกัน และมีหมายเลขกำกับ ถ้ามีการจัดลำดับในแต่ละรายการด้วย จะทำให้เห็นภาพรวมของแต่ละรายการได้ดีขึ้น หรือ ถ้าต้องการดูเฉพาะ รายการที่ 1-3 ก็สามารถใช้การกรอง กรองข้อมูลได้ ก็จะทำให้ดูข้อมูลง่ายขึ้น 

การใช้สูตร Text() หาอัตราส่วน ใน Excel

รูปภาพ
ปัญหา ต้องการหาอัตราส่วนของตัวเลข 2 ตัว เช่น ให้หาอัตราส่วนของ 2 และ 4 (คำตอบคือ 1:2) โดยใช้ Excel จะต้องทำอย่างไร แนวทาง Excel ไม่มีฟังกชันสำหรับหาอัตราส่วนให้โดยตรง แต่สามารถทำได้หลายอย่าง วิธีแรก คือนำตัวเลขทั้ง 2 ตัว มาหารกัน แล้วจัดรูปแบบให้เป็น Fraction โดยระบุจำนวนจุดทศนิยมก็จะได้อัตราส่วน ในรูปแบบที่มีเครื่องหมาย / เช่น 1/2 วิธีนี้ มีข้อแม้ว่า ตัวเลขตัวแรก จะต้องน้อยกว่าตัวเลขตัวที่สอง มิฉะนั้น จะมีเลขจำนวนเต็มเกิดขึ้น วิธีที่สอง ใช้สูตร Text() จัดการ วิธีนี้ใช้ได้ดี สามารถกำหนดจำนวนทศนิยมได้เอง ไม่มีข้อจำกัด แต่ค่าที่ได้จะอยู่ในรูปของตัวหนังสือ หรือ Text ไม่ใช่ค่าตัวเลขอีกต่อไป การใช้สูตร Text() หาอัตราส่วนระหว่างตัวเลข 2 จำนวน หลักการ วิธีนี้ คล้ายกับวิธีแรก คือนำตัวเลขสองตัวมาหารกัน แล้วกำหนดรูปแบบโดยให้มีเครื่องหมาย / ให้แสดงเป็นเศษส่วน จากนั้นจึงเปลี่ยนเครื่องหมาย / ให้เป็นเครื่องหมาย : โดยใช้สูตร Substitute() ก็จะได้ตามต้องการ โจทย์ ให้หาอัตราส่วนระหว่างตัวเลขสองจำนวน ข้างล่างนี้ วิธีการ คลิกที่เซลล์ C2 พิมพ์ข้อความที่แถบสูตร =SUBSTITUTE(TEXT(A2

การ share ระหว่าง Window 7 กับ Windows XP

รูปภาพ
Windows 7 มีให้ Share ระหว่าง Windows 7 ด้วยกัน ถ้าต้องการ Share ระหว่าง Windows 7 และ Windows XP จะเกิดปัญหาแม้ว่าจะอยู่ใน Group เดียวกัน ก็ตาม ปัญหาที่ว่า คือ ส่งไฟล์จาก Windows 7 ไปยังเครื่อง Windows XP ได้ แต่จาก XP จะมา 7 เข้าไม่ได้ ถ้าจะให้เครื่อง Windows XP สามารถส่งไฟล์ไปที่ Windows 7 ได้ ต้องทำดังนี้ ที่เครื่อง Windows 7 คลิกขวาที่ห้องที่ต้องการ Share เลือก Share with และเลือก Specific people... เลือก Everyone คลิก Add คลิกเลือก Permission Level เลือก Read/Write เพื่อให้อ่าน/เขียน ได้ คลิกปุ่ม Share ด้านล่าง จะเปิดหน้าใหม่ และแสดง link ให้เห็น คลิกปุ่ม Done เป็นอันเสร็จ ถ้าดูจากเครื่อง Windows XP จะเห็นไฟล์ในห้อง และสามารถ คัดลอก หรือส่งไฟล์เข้าในห้องที่ Share ได้ เป็นปกติ