Dune Think
Tuesday, September 27, 2011
แก้ไขรหัสผ่าน root ของ MySQL
MySQL: Resetting the Root Password: Generic Instructions
The preceding sections provide password-resetting instructions for Windows and Unix systems. Alternatively, on any platform, you can set the new password using the mysql client (but this approach is less secure):
Stop mysqld and restart it with the --skip-grant-tables option. This enables anyone to connect without a password and with all privileges. If you normally start the server with the --old-passwords option, include that option as well.
Connect to the mysqld server with this command:
shell> mysql
Issue the following statements in the mysql client. Replace the password with the password that you want to use.
mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass')
-> WHERE User='root';
mysql> FLUSH PRIVILEGES;
The FLUSH statement tells the server to reload the grant tables into memory so that it notices the password change.
You should now be able to connect to the MySQL server as root using the new password. Stop the server and restart it normally
(without the --skip-grant-tables option).
Friday, September 02, 2011
การติดตั้ง SUN-Oracle Java 1.7.0 บน CentOS 6.0 (HowTo Install SUN-Oracle Java 1.7.0 on CentOS 6.0)
การติดตั้ง SUN-Oracle Java 1.7.0 บน CentOS 6.0 (HowTo Install SUN-Oracle Java 1.7.0 on CentOS 6.0)
Step-1: ตรวจสอบเวอร์ชั่นของ Java บน CentOS จะเห็นได้ว่าเป็น Java OpenJDK
[root@bitcentos]# java -version
java version "1.6.0_17"
OpenJDK Runtime Environment (IcedTea6 1.7.9) (rhel-1.36.b17.el6_0-x86_64)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)
Step-2: เปลี่ยนโฟลเดอร์ไปที่ /usr/src
[root@bitcentos]# cd /usr/src
Step-3: สร้างโฟลเดอร์ /usr/src/downloads
[root@bitcentos]# mkdir downloads
Step-4: เปลี่ยนโฟลเดอร์ไปที่ /usr/src/downloads เพื่อจัดเก็บไฟล์ดาวน์โหลด Java ลงที่โฟลเดอร์นี้
[root@bitcentos]# cd downloads
Step-5: ตรวจสอบโฟลเดอร์ปัจจุบัน ด้วยคำสั่ง pwd
[root@bitcentos]# pwd
/usr/src/downloads
Step-6: ดาวน์โหลดไฟล์ RPM ชุดติดตั้ง jdk เวอร์ชั่น 1.7.0 แบบ 64 บิต ด้วยคำสั่ง curl
[root@bitcentos]# curl -L -O 'http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-x64.rpm'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 77.9M 100 77.9M 0 0 1183k 0 0:01:07 0:01:07 --:--:-- 1035k
Notes: รูปแบบคำสั่งและ URL สำหรับดาวน์โหลดชุดติดตั้ง Java อื่นๆ
- ชุดติดตั้ง jdk เวอร์ชั่น 1.7.0 แบบ 32 บิต
# curl -L -O 'http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-i586.rpm'
- ชุดติดตั้ง jre เวอร์ชั่น 1.7.0 แบบ 64 บิต
# curl -L -O 'http://download.oracle.com/otn-pub/java/jdk/7/jre-7-linux-x64.rpm'
- ชุดติดตั้ง jre เวอร์ชั่น 1.7.0 แบบ 32 บิต
# curl -L -O 'http://download.oracle.com/otn-pub/java/jdk/7/jre-7-linux-i586.rpm'
- ชุดติดตั้ง jre เวอร์ชั่น 1.6.0 แบบ 64 บิต
# curl -L -O 'http://download.oracle.com/otn-pub/java/jdk/6u27-b07/jre-6u27-linux-x64-rpm.bin'
- ชุดติดตั้ง jre เวอร์ชั่น 1.6.0 แบบ 32 บิต
# curl -L -O 'http://download.oracle.com/otn-pub/java/jdk/6u27-b07/jre-6u27-linux-i586-rpm.bin'
Step-7: ติดตั้ง jdk เวอร์ชั่น 1.7.0 แบบ 64 บิต ด้วยคำสั่ง yum
[root@bitcentos]# yum --nogpgcheck localinstall jdk-7-linux-x64.rpm
Step-8: ลงทะเบียน Java Compiler เวอร์ชั่น 1.7.0 แบบ 64 บิต ด้วยคำสั่ง alternatives
[root@bitcentos]# /usr/sbin/alternatives --install "/usr/bin/javac" "javac" "/usr/java/jdk1.7.0/bin/javac" 3
Step-9: ลงทะเบียน Java Runtime Environment (JRE) เวอร์ชั่น 1.7.0 แบบ 64 บิต ด้วยคำสั่ง alternatives
[root@bitcentos]# /usr/sbin/alternatives --install "/usr/bin/java" "java" "/usr/java/jdk1.7.0/bin/java" 4
Step-10: สวิทช์คอมไพเลอร์ของ Java Development Kit (JDK) ของ CentOS ให้ใช้ SUN (Oracle) JDK แทน OpenJDK โดยการเลือกข้อ (2) - /usr/java/jdk1.7.0/bin/javac
[root@bitcentos]# /usr/sbin/alternatives --config javac
There are 2 programs which provide 'javac'.
Selection Command
-----------------------------------------------
*+ 1 /usr/lib/jvm/java-1.6.0-openjdk.x86_64/bin/javac
2 /usr/java/jdk1.7.0/bin/javac
Enter to keep the current selection[+], or type selection number: 2
Step-11: ตรวจสอบเวอร์ชั่น Java Compiler
[root@bitcentos]# javac -version
javac 1.7.0
Step-12: สวิทช์คำสั่ง Java Runtime Environment (JRE) ของ CentOS ให้ใช้ของ SUN (Oracle) JRE แทน OpenJRE โดยเลือกข้อ (4) - /usr/java/jdk1.7.0/bin/java
[root@bitcentos]# /usr/sbin/alternatives --config java
There are 4 programs which provide 'java'.
Selection Command
-----------------------------------------------
1 /usr/lib/jvm/jre-1.5.0-gcj/bin/java
*+ 2 /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
3 /usr/java/jdk1.7.0/bin/javac
4 /usr/java/jdk1.7.0/bin/java
Enter to keep the current selection[+], or type selection number: 4
Step-13: ตรวจสอบเวอร์ชั่น Java Runtime Environment (JRE)
[root@bitcentos]# java -version
java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)
Good Luck!
Sunday, August 21, 2011
การเซ็ต PHPBB ให้ใช้ Google SMTP ในการส่งออกอีเมล์
เว็บบอร์ด PHPBB จะใช้ชื่อผู้ใช้ gmail นี้ในการส่งเมล์ขาออกเสมอ
ในที่นี้่ไปสมัครมาแล้ว ชื่อผู้ใช้: dunesmtp@gmail.com รหัสผ่าน: 123456 (รหัสผ่านง่ายไปหรือเปล่า :-)
หลังจากนั้นเข้าไปที่หน้า ผู้ดูแลระบบ (หน้าหลัก ACP) > ทั่วไป > การตั้งค่าอีเมล์
Use SMTP server for e-mail (ที่อยู่ SMTP เซิร์ฟเวอร์): Yes (ใช่)
SMTP server address (อยู่ SMTP เซิร์ฟเวอร์): tls://smtp.gmail.com หรือ ssl://smtp.gmail.com
SMTP server port (SMTP เซิร์ฟเวอร์พอร์ต): 465
Authentication method for SMTP (วิธีการตรวจสอบสำหรับ SMTP): PLAIN
SMTP username (ชื่อผู้ใช้ SMTP): ชื่อผู้ใช้@gmail.com
SMTP password (รหัสของ SMTP): รหัสผ่านของชื่อผู้ใช้ gmail
ทดสอบกับ PHPBB ด้วยการลองสมัครสมาชิก PHPBB แล้ว ให้ส่งเมล์แจ้งเพื่อ activate PHPBB account
ลองทำความเข้าใจดู
Thursday, September 09, 2010
องค์ประกอบของ Business Intelligence ที่จะดำเนินการเพิ่มเติมใน PROVIS Report ปีงบประมาณ 2554
- ดาต้าแวร์เฮ้าส์ (Data Warehouse) - รายการนี้มีแล้ว
- ดาต้ามาร์ท (Data Mart) - รายการนี้มีแล้ว
- การทำเหมืองข้อมูล (Data Mining) - รายการนี้ยังไม่มี
- การแก้ปัญหาทางคณิตศาสตร์ (Operations Research & Numerical Methods) - รายการนี้ยังไม่มี
- เครื่องมือที่ใช้ในการวิเคราะห์ข้อมูลในหลายมิติ (OLAP) แบบประมวลผลทันทีที่ป้อนข้อมูลเข้าไป - รายการนี้มีแล้ว ใช้ jasperserver OLAP
- ระบบสืบค้นและออกรายงานต่างๆ (Search, Report) - รายการนี้มีแล้ว
Wednesday, September 08, 2010
JasperServer - ปิด Refine filters ออกจากแถบค้นหา (search box) ด้านซ้ายหน้าจอ
เดิม:
แก้เป็น:
2. เปิดไฟล์ stylesheets/search.css ค้นหาคำว่า #filtersTable
เดิม:
#filtersTable {
width:100%;
border-top:none !important;
}
แก้เป็น:
#filtersTable {
width:100%;
border-top:none !important;
display:none;
}
Sunday, September 05, 2010
ข้อมูลจำนวนประชากร , ข้อมูลจำนวนประชากร (แยกตามอายุ) จากเว็บไซต์ สำนักทะเบียนราษฎร์ กระทรวงมหาดไทย
url http://www.dopa.go.th/TH/service.php
- ข้อมูลจำนวนประชากร ปี พ.ศ. 2536 - พ.ศ.2551
- ข้อมูลจำนวนประชากร (แยกตามอายุ) ปี พ.ศ. 2537 - พ.ศ.2551
ข้อมูลจำนวนประชากรแยกรายอายุ ได้จากเว็บไซต์ สำนักทะเบียนราษฎร์ กระทรวงมหาดไทย
ได้จากเว็บไซต์ สำนักทะเบียนราษฎร์ กระทรวงมหาดไทย
url http://www.dopa.go.th/xstat/xstat.html
Wednesday, September 01, 2010
วิธีเก็บไฟล์ .rpm จากการติดตั้งด้วย yum และ วิธีติดตั้งด้วย yum จากไฟล์แพ็กเกจ rpm ภายในเซิร์ฟเวอร์
# nano /etc/yum.conf
แก้ไขค่า keepcache=0 เป็น keepcache=1
เมื่อเรียกคำส่ง yum install
โปรแกรมจะเก็บไฟล์ rpm ไว้ในไดเร็คทอรี่ /var/cache/yum/x86_64/12/updates/packages
* วิธีติดตั้งโปรแกรมด้วย yum จากไฟล์แพ็กเกจ rpm ภายในเซิร์ฟเวอร์
# yum localinstall *.rpm
Saturday, August 28, 2010
คนถามกันจัง อัปเดตโปรแกรมบนวินโดว์ 7 หรือ วิสต้า ไม่ได้
นอกจากเราจะมั่นใจว่า ต้องการทำอะไรจริงๆ นั่นหมายถึง เราต้องเป็นผู้ดูแลระบบ หรือ ผู้ใช้ (username/account) Administrator ของวินโดว์
หากเราล็อกอินเข้าใช้งานด้วยผู้ใช้ (username/account) Administrator ของวินโดว์ ก็จะสามารถดำเนินการในเครื่องคอมพิวเตอร์นั้นได้ทุกอย่าง รวมทั้งเรื่องการเขียนไฟล์ลงไดรว์ C: หรือ การอัปเดตโปรแกรม JHCIS ด้วย
แต่...หลายๆ คนยังไม่ทราบเลยว่า ขณะนั้นกำลังล็อกอินด้วยผู้ใช้ (username/account) ใดอยู่ เนื่องจากไม่ได้ติดตั้งวินโดว์เอง ไปให้ร้านซ่อมคอมพิวเตอร์ติดตั้งให้ หรือ ให้เพื่อนบ้านติดตั้งให้ เป็นต้น ก็ขอบอกเลยว่า ส่วนใหญ่ไม่ได้ล็อกอินเข้าใช้ด้วยผู้ใช้ Administrator
นั่นก็หมายถึง ส่วนใหญ่ก็จะพบปัญหาเรื่องการอัปเดตโปรแกรม JHCIS แน่นอน แต่เราก็มีวิธีแก้ไข
ระบบปฏิบัติการ วินโดว์ 7/วิสต้า แบบ 32 บิต (ส่วนใหญ่เรายังใช้งานแบบ 32 บิต) โปรแกรม JHCIS ติดตั้งที่โฟลเดอร์ C:\Program Files\JHCIS
ระบบปฏิบัติการ วินโดว์ 7/วิสต้า แบบ 64 บิต โปรแกรม JHCIS ติดตั้งที่โฟลเดอร์ C:\Program Files (x86)\JHCIS
กรณีหากเป็นปัญหาเรื่องการอนุญาต (permission) ในการเขียนไฟล์ลงโฟลเดอร์ C:\Program Files\JHCIS (หรือ C:\Program Files (x86)\JHCIS ในวินโดว์ 7/วิสต้า แบบ 64 บิต) เราสามารถไปเปลี่ยนการอนุญาต (permission) ของโฟลเดอร์ที่ว่ามาได้
:idea: คลิกเม้าส์ขวาที่โฟลเดอร์ C:\Program Files\JHCIS > เลือกเมนู properties
:idea: เมื่อไดอะล็อก jhcis Properties ปรากฏขึ้นมา ให้คลิกแท็บ Security แล้ว คลิกปุ่ม Edit
:idea: เมื่อปรากฏไดอะล็อก Permissions fot jhcis ที่ช่อง Group or user names: ให้คลิกที่รายการ Users (COMPUTERNAME\Users) แล้วไปที่ช่อง Permissions for Users บรรทัด Full Control คอลัมน์ Allow แล้วคลิกปุ่ม Apply ด้านล่างของไดะอะล็อก
หากเป็นปัญหาเรื่องการอนุญาต (permission) ในการเขียนไฟล์หรือโฟลเดอร์ วิธีนี้ก็จะแก้ปัญหาได้
Sunday, August 15, 2010
การกู้ข้อมูลจากฐานข้อมูล MySQL Storage Engine แบบ InnoDB (Forcing InnoDB Recovery)
อ้างอิง: http://dev.mysql.com/doc/refman/5.0/en/forcing-recovery.html
1) เปิดไฟล์คอนฟิกของ MySQL ดาต้าเบสเซิร์ฟเวอร์ ด้วยโปรแกรม Notepad หรือ Wordpad
C:\Program Files\JHCIS\MySQL\my.ini
ค้นหา [mysqld] แล้วแทรกบรรทัด innodb_force_recovery = 4 ลงไป
บันทีกการแก้ไข
[mysqld]
innodb_force_recovery = 4
2) รีสตาร์ตเซอร์วิสของ MySQL ดาต้าเบสเซิร์ฟเวอร์
คลิก Start > All Programs > MySQL-JHCIS > MySQL Service Stop
คลิก Start > All Programs > MySQL-JHCIS > MySQL Service Start
3) หากเซอร์วิสของ MySQL ดาต้าเบสเซิร์ฟเวอร์ ทำงานได้ปกติ ก็จะสามารถติดต่อฐานข้อมูลได้ ให้ทำการสำรองข้อมูล (Backup) ออกมาด้วยโปรแกรม MySQL Administrator จะได้ไฟล์ jhcisdb.sql
4) นำไฟล์ jhcisdb.sql ที่ได้จากการสำรองข้อมูล (Backup) ไปทดสอบนำเข้า (Restore) ที่เครื่องคอมพิวเตอร์อื่น (ต้องหามา) เพื่อให้มั่นใจว่า ไฟล์สำรองข้อมูลนั้นใช้ได้
5) หากมั่นใจว่าไฟล์สำรองข้อมูลที่ทำมาใช้การได้ ให้ทำการลบฐานข้อมูล jhcisdb เดิม ทิ้งไป
คลิก Start > All Programs > MySQL-JHCIS > MySQL Administrator คลิกเมนู Catalogs คลิกเม้าส์ปุ่มขวาที่รายการ jhcisdb แล้วเลือกเมนู Drop Schema
6) นำไฟล์ jhcisdb.sql ที่ได้จากการสำรองข้อมูล (Backup) มานำเข้า (Restore) กลับเข้าไปในเครื่องคอมพิวเตอร์ที่จัดเก็บฐานข้อมูลระบบงาน JHCIS
7) เปิดไฟล์คอนฟิกของ MySQL ดาต้าเบสเซิร์ฟเวอร์ ด้วยโปรแกรม Notepad หรือ Wordpad
C:\Program Files\JHCIS\MySQL\my.ini
ค้นหา [mysqld] แล้วลบบรรทัด innodb_force_recovery = 4 ออกจากไฟล์
บันทีกการแก้ไข
8) รีสตาร์ตเซอร์วิสของ MySQL ดาต้าเบสเซิร์ฟเวอร์
คลิก Start > All Programs > MySQL-JHCIS > MySQL Service Stop
คลิก Start > All Programs > MySQL-JHCIS > MySQL Service Start
เสร็จสิ้นขั้นตอน ก็คาดหวังว่า เครื่องคอมพิวเตอร์ของคุณ พร้อมกับ ฐานข้อมูล jhcisdb จะสามารถใช้งานได้ปกติ
Saturday, August 14, 2010
Friday, August 13, 2010
การเซ็ตให้รายงาน JasperServer ส่งออกเป็นไฟล์ PDF ที่มีฟอนต์ภาษาไทย
1. สร้างไฟล์ jasperreports_extension.properties ในโฟลเดอร์ WEB-INF/classes ของ jasperserver
Windows: C:\Program Files\Apache Software Foundation\tomcat 6.0\webapps\jasperserver\WEB-INF\classes\
Linux Fedora 12: /usr/share/tomcat6/webapps/jasperserver/WEB-INF/classes/
เขียนโค้ดบรรทัดต่อไปนี้ลงในไฟล์
jasperreports_extension.properties
net.sf.jasperreports.extension.registry.factory.fonts=net.sf.jasperreports.extensions.SpringExtensionsRegistryFactory
net.sf.jasperreports.extension.fonts.spring.beans.resource=fonts.xml
2. สร้างไฟล์ fonts.xml ภายใต้โฟลเดอร์ WEB-INF/classes ของ jasperserver (โฟลเดอร์เดียวกับขั้นตอน 1)
เขียนโค้ดบรรทัดต่อไปนี้ลงในไฟล์
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="TahomaFontFamily" class="net.sf.jasperreports.engine.fonts.SimpleFontFamily">
<property name="name" value="Tahoma"/>
<property name="normal" value="fonts/tahoma.ttf"/>
<property name="pdfEncoding" value="Identity-H"/>
</beans>
3. สร้างโฟลเดอร์ fonts ภายใต้โฟลเดอร์ WEB-INF/classes ของ jasperserver (โฟลเดอร์เดียวกับขั้นตอน 1) จะได้โฟลเดอร์ WEB-INF/classes/fonts
4. ก็อปปี้หรืออัปโหลดไฟล์ฟอนต์ที่ต้องการ เช่น tahoma.ttf, tahomabd.ttf ไปวางที่โฟลเดอร์ WEB-INF/classes/fonts ของ jasperserver (โฟลเดอร์ที่ได้จากขั้นตอน 3)
เสร็จสิ้นขั้นตอน
Thursday, August 12, 2010
การแก้ปัญหา JasperServer เกี่ยวกับ webHelpModule is undefined
jpivot\ja-pro.js(194): $('helpLink').onclick = webHelpModule.displayWebHelp;
WEB-INF\jsp\olap\viewOlap.jsp(107): webHelpModule.currentContext = "analysis";
WEB-INF\jsp\rolesFlow\roleManager.jsp(65): webHelpModule.currentContext="admin";
WEB-INF\jsp\search\results.jsp(76): webHelpModule.currentContext = "search";
WEB-INF\jsp\userFlow\userManager.jsp(65): webHelpModule.currentContext="admin";
Thursday, July 08, 2010
โค้ดจาวา แสดงชื่อ CPU
* CpuInfo.java
*
*/
package pcu.config;
import org.hyperic.sigar.CpuPerc;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarLoader;
import org.hyperic.sigar.SigarException;
import org.hyperic.sigar.cmd.Shell;
import org.hyperic.sigar.cmd.SigarCommandBase;
public class CpuInfo extends SigarCommandBase {
public boolean displayTimes = true;
public CpuInfo(Shell shell) {
super(shell);
}
public CpuInfo() {
super();
}
public String getUsageShort() {
return "Display cpu information";
}
private void output(CpuPerc cpu) {
println("User Time....." + CpuPerc.format(cpu.getUser()));
println("Sys Time......" + CpuPerc.format(cpu.getSys()));
println("Idle Time....." + CpuPerc.format(cpu.getIdle()));
println("Wait Time....." + CpuPerc.format(cpu.getWait()));
println("Nice Time....." + CpuPerc.format(cpu.getNice()));
println("Combined......" + CpuPerc.format(cpu.getCombined()));
println("Irq Time......" + CpuPerc.format(cpu.getIrq()));
if (SigarLoader.IS_LINUX) {
println("SoftIrq Time.." + CpuPerc.format(cpu.getSoftIrq()));
println("Stolen Time...." + CpuPerc.format(cpu.getStolen()));
}
println("");
}
public void output(String[] args) throws SigarException {
org.hyperic.sigar.CpuInfo[] infos = this.sigar.getCpuInfoList();
CpuPerc[] cpus = this.sigar.getCpuPercList();
org.hyperic.sigar.CpuInfo info = infos[0];
long cacheSize = info.getCacheSize();
println("Vendor........." + info.getVendor());
println("Model.........." + info.getModel());
println("Mhz............" + info.getMhz());
println("Total CPUs....." + info.getTotalCores());
if ((info.getTotalCores() != info.getTotalSockets()) ||
(info.getCoresPerSocket() > info.getTotalCores()))
{
println("Physical CPUs.." + info.getTotalSockets());
println("Cores per CPU.." + info.getCoresPerSocket());
}
if (cacheSize != Sigar.FIELD_NOTIMPL) {
println("Cache size...." + cacheSize);
}
println("");
if (!this.displayTimes) {
return;
}
for (int i=0; i
output(cpus[i]);
}
println("Totals........");
output(this.sigar.getCpuPerc());
}
public static void main(String[] args) throws Exception {
//Determine System Architechture
String osName = System.getProperty("os.name");
String osArch = System.getProperty("os.arch");
String sigarFile = "";
if(osArch.toLowerCase().contains("x86")) {
if(osName.toLowerCase().contains("linux")) sigarFile = "libsigar-x86-linux.so";
else if(osName.toLowerCase().contains("windows")) sigarFile = "sigar-x86-winnt.dll";
} else if(osArch.toLowerCase().contains("amd64")) {
if(osName.toLowerCase().contains("linux")) sigarFile = "libsigar-amd64-linux.so";
else if(osName.toLowerCase().contains("windows")) sigarFile = "sigar-amd64-winnt.dll";
}
//Load library
String userDir = System.getProperty("user.dir");
System.load( (userDir+"/lib/lib_hyperic-sigar-1.6.3/"+sigarFile) );
//Execute
new CpuInfo().processCommand(args);
}
}
จะแสดงผลลัพธ์
Model..........Core(TM)2 Duo CPU P8700 @ 2.53GHz
Mhz............2527
Total CPUs.....2
Physical CPUs..1
Cores per CPU..2
CPU 0.........
User Time.....30.3%
Sys Time......36.3%
Idle Time.....33.2%
Wait Time.....0.0%
Nice Time.....0.0%
Combined......66.7%
Irq Time......0.0%
CPU 1.........
User Time.....33.2%
Sys Time......36.3%
Idle Time.....30.3%
Wait Time.....0.0%
Nice Time.....0.0%
Combined......69.6%
Irq Time......0.0%
Totals........
User Time.....6.4%
Sys Time......0.0%
Idle Time.....93.6%
Wait Time.....0.0%
Nice Time.....0.0%
Combined......6.4%
Irq Time......0.0%
Monday, June 28, 2010
บทที่ 12 การสร้างระบบแก้ไขข้อมูล
ระบบแก้ไขข้อมูล คือระบบเว็บเพจที่จัดทำขึ้นเพื่อให้ผู้ใช้สามารถเรียกดูข้อมูลเร็คคอร์ดเดิมจากตารางของฐานข้อมูล
และผู้ใช้สามารถแก้ไขปรับปรุงข้อมูลให้เป็นปัจจุบัน หลังจากนั้นก็สามารถบันทึกข้อมูลที่แก้ไขแล้วลงในตารางของฐานข้อมูลได้
รูปแสดงไฟล์ที่เกี่ยวข้องในระบบแก้ไขข้อมูล
ระบบแก้ไขข้อมูลที่จะยกตัวอย่างนี้ ประกอบด้วยไฟล์ 2 ไฟล์ ดังรูป
- update.php ประกอบด้วย ฟอร์มสำหรับแสดงข้อมูลเดิมเพื่อให้ผู้ใช้ปรับปรุงแก้ไขข้อมูล
และ สคริปต์ PHP สำหรับจัดเก็บข้อมูลที่แก้ไขปรับปรุงแล้วลงตารางของฐานข้อมูล - updateok.php สำหรับแสดงข้อความแจ้งผลการแก้ไขปรับปรุงข้อมูล
ขั้นตอนการสร้างระบบแก้ไขข้อมูลที่ยกมาอธิบายในที่นี้ แบ่งเป็นขั้นตอนดังต่อไปนี้
- การสร้างฟอร์มสำหรับแก้ไขข้อมูล
- การสร้าง recordset สำหรับค้นหาข้อมูลเร็คคอร์ดที่ต้องการแก้ไข
- การแทรกสคริปต์สำหรับแสดงข้อมูลเดิมในฟอร์ม HTML
- การแทรก Update Record Server Behavior ลงในเว็บเพจ
- การส่งและรับค่า URL Parameter เพื่อระบุเร็คคอร์ดที่ต้องการแก้ไข
- การแสดงผลการแก้ไขข้อมูล
- การใช้งานระบบแก้ไขข้อมูล
|
ขั้นตอนแรกนี้ จะเป็นการแทรกฟอร์มลงไปในเว็บเพจ สำหรับเป็นแบบฟอร์มเพื่อแสดงผลข้อมูลปัจจุบัน
และผู้ใช้งานเว็บแอพพลิเคชั่นสามารถแก้ไขข้อมูล และบันทึกการแก้ไขลงในฐานข้อมูลได้
ขั้นตอนการสร้างฟอร์มสำหรับแก้ไขข้อมูล:
- เริ่มต้นที่โปรแกรม Dreamweaver คลิกเมนู File > New จะปรากฏไดอะล็อก New Document ขึ้นมา ให้คลิกแท็บ General
คลิกเลือก Dynamic Page > PHP หลังจากนั้นคลิกปุ่ม Create บันทึกเป็นไฟล์ update.php - แทรกฟอร์ม HTML สำหรับแก้ไขข้อมูลลงในเว็บเพจ โดยให้มีข้อความและชื่ออ็อบเจ็คต์ของฟอร์ม ดังรูป
รูปแสดงแบบฟอร์มสำหรับแก้ไขข้อมูล
NOTE: เปิดไฟล์ htmlform.htm จากขั้นตอนการสร้างฟอร์ม HTML หรือ \PHPWEB\labs\solutions\lab03_htmlform\htmlform.htm ขึ้นมาแล้วบันทึกเป็นไฟล์ PHPWEB\update.php (หากปรากฏไดอะล็อก Update Links? ให้คลิก No) |
- ปรับแต่งรูปแบบของเว็บเพจโดยการแทรกไฟล์รูปภาพ และ ข้อความ
- กำหนด Document Title เป็น "Update an employee record" (ดังรูป)
- หัวข้อของเว็บเพจ ให้ใช้ไฟล์ images/title_update.gif (ดังรูป)
- กำหนด Document Title เป็น "Update an employee record" (ดังรูป)
- หน้าจอ Dreamweaver ที่เปิดไฟล์ update.php ให้ทำการกำหนดชื่อของฟอร์ม โดยคลิกแท็ก <FORM> ที่ Tag Selector
รูปแสดงการคลิกเลือกแท็ก <FORM> จาก Tag Selector
- เปิดไดอะล็อก Properties โดยคลิกเมนู Window > Properties หลังจากนั้นให้พิมพ์ชื่อฟอร์ม frmUpdate ที่ช่อง Form name
รูปแสดง Property ของแท็ก <FORM>
ค่าของไดอะล็อก | ค่าที่กำหนด |
Form name | fmUpdate |
ตารางแสดงการกำหนด Property ของแท็ก <FORM>
จะเห็นได้ว่า ในการกำหนดคุณสมบัติของฟอร์ม HTML เรากำหนดเฉพาะคุณสมบัติในช่อง Form Name เท่านั้น
ส่วนคุณสมบัติในช่องอื่นๆ ในขั้นตอนต่อไป Dreamweaver จะกำหนดให้เราเองโดยอัตโนมัติ
|
ขั้นตอนนี้จะเป็นการค้นหาข้อมูลเร็คคอร์ดที่ต้องการแก้ไขเพื่อนำเอามาแสดงในฟอร์ม เป็นการแสดงสถานะของข้อมูลปัจจุบัน
ก่อนที่จะมีการแก้ไขปรับปรุงข้อมูล
ขั้นตอนการสร้าง recordset สำหรับค้นหาข้อมูลเร็คคอร์ดที่ต้องการแก้ไข:
|
รูปแสดงการคลิกเลือกเมนู Recordset จาก Server Behaviors |
- เมื่อปรากฏไดอะล็อก Recordset ขึ้นมา ให้กำหนดค่าต่างๆ ดังรายละเอียดข้างล่างนี้ หลังจากนั้นคลิกปุ่ม OK
รูปแสดงไดอะล็อก Recordset |
- บันทึกไฟล์ update.php
|
การแสดงข้อมูลลงในฟอร์ม ก็คือการแทรกสคริปต์สำหรับนำเอาฟิลด์จากการสร้าง Recordset ในขั้นตอนการค้นหาข้อมูลมา
แสดงผลในฟอร์มของเว็บเพจ เพื่อแสดงข้อมูลปัจจุบัน ก่อนที่จะแก้ไขปรับปรุง โดยวิธีการจะคล้ายกับขั้นตอนการทำระบบแสดงผลข้อมูล
ในไฟล์ detail.php
ขั้นตอนการแทรกสคริปต์สำหรับแสดงข้อมูลเดิมในฟอร์ม HTML:
- เริ่มต้นเปิดโปรแกรม Dreamweaver ไปที่ไฟล์ update.php คลิกที่เมนู Window > Bindings หลังจากนั้นให้คลิกเครื่องหมายบวก
หน้ารายการ Recordset (rsEmp) จะปรากฏชื่อฟิลด์ ให้คลิกเลือกและแทรกฟิลด์ลงในอ็อบเจ็คต์ของฟอร์มเพื่อแสดงผลข้อมูล ดังรูปด้านล่าง
รูปการแสดงผลข้อมูลในฟอร์ม (Bindings)
- บันทึกไฟล์ update.php ก็เป็นอันเสร็จการแสดงผลข้อมูลลงในฟอร์ม
|
การแทรก Update Record Server Behavior ก็คือการแทรกสคริปต์ PHP เพื่อสั่งให้บันทึกการแก้ไขข้อมูลลงตารางของฐานข้อมูล
ขั้นตอนการแทรก Update Record Server Behavior ลงในเว็บเพจ:
- เริ่มต้นที่โปรแกรม Dreamweaver เปิดไฟล์ update.php หลังจากนั้นให้คลิกเม้าส์ที่ตำแหน่งใดๆ ภายใต้เส้นประสีแดง ที่เป็นขอบเขตของฟอร์ม
- คลิกเมนู Insert > Form > Hidden Field หลังจากนั้นคลิกเม้าส์ที่อ็อบเจ็คต์ Hidden Field จะปรากฏไดอะล็อก Properties ของ Hidden Field
(หากไม่ปรากฏไดอะล็อก Properties ให้คลิกที่เมนู Windows > Properties) และให้กำหนดค่าในไดอะล็อกดังต่อไปนี้
รูปแสดงการกำหนด Property ของ Hidden Field "empid"
ค่าของไดอะล็อก | ค่าที่กำหนด |
HiddenField | empid |
Value | <?php echo $row_rsEmp['employeeid']; ?> |
ตารางแสดงการกำหนด Property ของ Hidden Field "empid"
- เปิดแถบ Server Behaviors โดยคลิกเมนู Window > Server Behaviors แล้วคลิกที่ปุ่มเครื่องหมายบวก
เลือกรายการUpdate Record จากเมนู
ตารางแสดง Update Record Server Behaviors
- เมื่อปรากฏไดอะล็อก Update Record ให้กำหนดค่าต่างๆ มีดังต่อไปนี้
รูปแสดงการกำหนดค่าต่างๆ ในไดอะล็อก Update Record
ค่าของไดอะล็อก | ค่าที่กำหนด |
Submit Values From | fmUpdate |
Connection | dbconn |
Update Table | employees |
Columns | จับคู่ฟิลด์ของฐานข้อมูลกับอ็อบเจ็คต์ของฟอร์มดังต่อไปนี้ employeeid -> FORM.empid firstname -> FORM.firstname lastname -> FORM.lastname birthdate -> FORM.birthdate startdate -> FORM.startdate deptid -> FORM.deptid phone -> FORM.phone extension -> FORM.extension email -> FORM.email notes -> FORM.notes photo -> FORM.photo |
After Updating, Go To | updateok.php |
ตารางแสดงการกำหนดค่าต่างๆ ในไดอะล็อก Update Record
- บันทึกไฟล์ update.php ก็เป็นอันเสร็จขั้นตอนการแทรก Update Record Server behavior
|
ขั้นตอนนี้ ก็คือการทำให้ไฟล์เว็บเพจ 2 ไฟล์ list.php และ update.php สามารถเชื่อมโยงเพื่อส่งและรับค่า URL Parameter กันได้นั่นเอง
ขั้นตอนการส่งและรับค่า URL Parameter เพื่อระบุเร็คคอร์ดที่ต้องการแก้ไข:
- เริ่มต้นที่โปรแกรม Dreamweaver เปิดไฟล์ list.php ขึ้นมา แล้วลากเม้าส์ทำไฮไลต์ข้อความ "แก้ไข" ดังรูป
รูปแสดงการไฮไลต์ข้อความ "แก้ไข"
- เปิดไดอะล็อก Properties โดยคลิกที่เมนู Window > Properties จะปรากฏไดอะล็อก Properties ขึ้นมา ให้คลิกไอคอนรูป
Folder สีเหลือง (Browse for File) ที่ตำแหน่งช่อง Link เพื่อสร้างไฮเปอร์ลิงค์สำหรับ URL Parameter ไปหาไฟล์ update.php
รูปแสดง Property ของลิงค์ "แก้ไข"
- เมื่อปรากฏไดอะล็อก Select File ขึ้นมา ให้คลิกเลือกไฟล์ update.php เป็นการกำหนดว่าจะส่งค่า URL Parameter ไปที่ไฟล์นี้
หลังจากนั้นให้คลิกปุ่ม Parameters… ที่ด้านล่างของไดอะล็อก Select File เพื่อกำหนดการส่งค่า URL Parameter
รูปแสดงขั้นตอนการสร้างลิงค์ พร้อมกับการกำหนด "Parameters…"
- เมื่อปรากฏไดอะล็อก Parameters ขึ้นมา ที่ช่อง Name ให้พิมพ์ชื่อ URL Parameter ที่ต้องการจะส่งไป
ในที่นี้ให้เราพิมพ์ empid หลังจากนั้นให้ไปที่ช่อง Value เพื่อกำหนดค่าที่จะส่งไป ในที่นี้เราต้องการกำหนดค่า
ให้เปลี่ยนไปแบบ Dynamic ตามข้อมูลที่แสดงในแต่ละเร็คคอร์ด ให้คลิกปุ่ม Dynamic Data ที่ช่อง Value
รูปแสดงขั้นตอนการสร้างลิงค์ พร้อมกับการกำหนด "Parameters…"
ค่าของไดอะล็อก | ค่าที่กำหนด |
Name | empid |
Value | <?php echo $row_rsEmp['employeeid']; ?> |
ตารางแสดงการกำหนดค่า URL Parameter ในไดอะล็อก "Parameters"
- เมื่อปรากฏไดอะล็อก Dynamic Data ขึ้นมา ให้คลิกเลือกฟิลด์ employeeid จาก Recordset (rsEmp) หลังจากนั้นคลิกปุ่ม OK
รูปแสดงการเลือกฟิลด์ employeeid จาก Recordset
- บันทึกไฟล์ list.php ก็เป็นเสร็จขั้นตอนการกำหนดการส่งค่า URL Parameter
- ขั้นตอนสุดท้ายคือกำหนดให้ไฟล์ update.php รับค่า URL Parameter ที่ส่งมาจากไฟล์ list.php ซึ่งวิธีการทำนั้น
เราได้ทำผ่านมาแล้วให้ย้อนกลับไปดูในขั้นตอน "การสร้าง recordset สำหรับค้นหาข้อมูลเร็คคอร์ดที่ต้องการแก้ไข"
จะเห็นได้ว่า เราได้มีการเรียกใช้ URL Parameter "empid" ซึ่งก็คือค่า URL Parameter ที่ส่งไปจากไฟล์ list.php นั่นเอง
|
ขั้นตอนสุดท้ายของระบบแก้ไขข้อมูลคือ การสร้างไฟล์แสดงผลการทำงาน ซึ่งจะประกอบด้วยข้อความ แสดงให้ผู้ใช้
ทราบว่าการแก้ไขข้อมูลเสร็จเรียบร้อยแล้วเท่านั้น ให้สร้างเว็บเพจขึ้นมาและพิมพ์ข้อความสำหรับแสดงผลการแก้ไขข้อมูล
บันทึกเป็นไฟล์ updateok.php
รูปแสดงการสร้างไฟล์ updateok.php
|
เริ่มต้นโดยใช้โปรแกรม Dreamweaver เปิดไฟล์ list.php ขึ้นมา แล้วกดปุ่ม F12 โปรแกรม Internet Explorer
จะถูกเปิดขึ้นมาเรียกใช้งานไฟล์ list.php หลังจากนั้นให้คลิกปุ่ม "แก้ไข" เพื่อแก้ไขข้อมูลแต่ละเร็คคอร์ด เสร็จแล้วคลิกปุ่ม
Update เพื่อบันทึกข้อมูล รอดูผลที่จะแสดงจากไฟล์ updateok.php
บทที่ 11 การสร้างระบบเพิ่มข้อมูล
ระบบเพิ่มข้อมูล คือเว็บเพจที่ทำหน้าที่ในการรับข้อมูลจากผู้ใช้ผ่านฟอร์ม และบันทึกการกรอกข้อมูลเข้าจัดเก็บในฐานข้อมูล
ในที่นี้จะประกอบด้วยไฟล์ 2 ไฟล์ ดังรูป
รูปแสดงไฟล์ที่เกี่ยวข้องกับระบบเพิ่มข้อมูล
- insert.php ประกอบด้วยฟอร์มสำหรับเป็นแบบฟอร์มกรอกข้อมูลและสคริปต์สำหรับจัดเก็บข้อมูลลงตารางของฐานข้อมูล
- insertok.php ประกอบด้วยข้อความแสดงผลการเพิ่มข้อมูล
ขั้นตอนการสร้างระบบเพิ่มข้อมูลที่ยกมาอธิบายในที่นี้ แบ่งเป็นขั้นตอนดังต่อไปนี้
- การสร้างฟอร์มกรอกข้อมูล
- การแทรก Insert Record Server Behavior ลงในเว็บเพจ
- การสร้างเว็บเพจแสดงผลลัพธ์การเพิ่มข้อมูล
- การใช้งานระบบเพิ่มข้อมูล
(1) การสร้างฟอร์มกรอกข้อมูล |
การสร้างฟอร์มกรอกข้อมูล คือ ขั้นตอนการสร้างแบบฟอร์มให้ผู้ใช้เว็บแอพพลิเคชั่น นำข้อมูลมากรอกในแบบฟอร์ม
และส่งข้อมูลไปประมวลผลบนแอพพลิเคชั่นเซิร์ฟเวอร์ เพื่อบันทึกลงตารางของฐานข้อมูล
ขั้นตอนการสร้างฟอร์มกรอกข้อมูล:
- เริ่มต้นที่โปรแกรม Dreamweaver คลิกเมนู File > New จะปรากฏไดอะล็อก New Document ขึ้นมา
ให้คลิกแท็บ General คลิกเลือก Dynamic Page > PHP หลังจากนั้นคลิกปุ่ม Create บันทึกเป็นไฟล์ insert.php - แทรกฟอร์ม HTML สำหรับกรอกข้อมูลลงในเว็บเพจ โดยให้มีข้อความและชื่ออ็อบเจ็คต์ของฟอร์ม ดังรูป
รูปแสดงแบบฟอร์มกรอกข้อมูล
NOTE: เปิดไฟล์ htmlform.htm จากขั้นตอนการสร้างฟอร์ม HTML หรือ \PHPWEB\labs\solutions\lab03_htmlform\htmlform.htm ขึ้นมาแล้วบันทึกเป็นไฟล์ PHPWEB\insert.php (หากปรากฏไดอะล็อก Update Links? ให้คลิก No) |
- หน้าจอ Dreamweaver ที่เปิดไฟล์ insert.php ให้ทำการกำหนดชื่อของฟอร์ม โดยคลิกแท็ก <FORM> ที่ Tag Selector
รูปแสดงการคลิกเลือกแท็ก <FORM> จาก Tag Selector
- เปิดไดอะล็อก Properties โดยคลิกเมนู Window > Properties หลังจากนั้นให้พิมพ์ชื่อฟอร์ม fmAdd ที่ช่อง Form name
ค่าของไดอะล็อก | ค่าที่กำหนด |
Form name | fmAdd |
ตารางแสดงการกำหนด Property ของแท็ก <FORM>
รูปแสดง Property ของแท็ก <FORM>
จะเห็นได้ว่า ในการกำหนดคุณสมบัติของฟอร์ม เราไม่จำเป็นต้องกำหนดค่าใดๆ ในช่อง Action และ Method
เนื่องจากในขั้นตอนต่อไป Dreamweaver จะสร้างให้เราเองโดยอัตโนมัติ
|
การแทรก Insert Record Server Behavior เป็นการแทรกสคริปต์ PHP เพื่อบันทึกข้อมูลลงตารางของฐานข้อมูล
ขั้นตอนการแทรก Insert Record Server Behavior ลงในเว็บเพจ:
- เปิดแถบ Server Behaviors โดยคลิกเมนู Window > Server Behaviors แล้วคลิกที่ปุ่มเครื่องหมายบวก
เลือกรายการ Insert Record จากเมนู
ดังรูป
รูปแสดงการคลิกเลือกเมนู Insert Record จาก Server Behaviors
- เมื่อปรากฏไดอะล็อก Insert Record ขั้นตอนต่อจากนี้ ก็จะเป็นการกำหนดค่าในไดอะล็อก Insert Record
ซึ่งรายละเอียดการกำหนดค่าต่างๆ มีดังต่อไปนี้
รูปแสดงไดอะล็อก Insert Record
ค่าของไดอะล็อก | ค่าที่กำหนด |
Submit Values From | fmAdd |
Connection | dbconn |
Insert Table | employees |
Columns | จับคู่ฟิลด์ของฐานข้อมูลกับอ็อบเจ็คต์ของฟอร์มดังต่อไปนี้ firstname -> firstname lastname -> lastname birthdate -> birthdate startdate -> startdate deptid -> deptid phone -> phone extension -> extension email -> email notes -> notes photo -> photo |
After Inserting, Go To | insertok.php |
ตารางแสดงการเลือกฟิลด์จากไดอะล็อก Insert Record เพื่อเพิ่มข้อมูล
- บันทึกไฟล์ insert.php ก็เป็นอันเสร็จขั้นตอนการแทรก Insert Record Server behavior
|
ขั้นตอนสุดท้ายของระบบเพิ่มข้อมูลคือ การสร้างไฟล์แสดงผลการทำงาน ซึ่งจะประกอบด้วยข้อความ แสดงให้ผู้ใช้
ทราบว่าการกรอกข้อมูลเสร็จเรียบร้อยแล้วเท่านั้น ให้สร้างเว็บเพจขึ้นมาและพิมพ์ข้อความสำหรับแสดงผลการเพิ่มข้อมูล
บันทึกเป็นไฟล์ Insertok.php
|
เริ่มต้นโดยใช้โปรแกรม Dreamweaver เปิดไฟล์ insert.php ขึ้นมา แล้วกดปุ่ม F12 โปรแกรม Internet Explorer
จะถูกเปิดขึ้นมาเรียกใช้งานไฟล์ insert.php หลังจากนั้นให้ทดลองกรอกข้อมูลและคลิกปุ่ม Insert เพื่อบันทึกข้อมูล
เสร็จแล้วรอดูผลที่จะแสดงจากไฟล์ insertok.php
บทที่ 10 การสร้างระบบค้นหาข้อมูล
ระบบค้นหาข้อมูล คือเว็บเพจที่ทำหน้าที่ในการเรียกค้นหาข้อมูลจากฐานข้อมูล และนำผลลัพธ์มาแสดงผลที่หน้าจอเว็บเพจ
รูปแสดงไฟล์ที่เกี่ยวข้องกับระบบค้นหาข้อมูล
ระบบค้นหาข้อมูลในส่วนที่จะอธิบายนี้ จะประกอบด้วยไฟล์ 2 ไฟล์
- search.php ทำหน้าที่รับค่าคำค้น แล้วส่งไปเป็น URL Parameter ชื่อ keywords ไปให้ไฟล์ result.php
ใช้เปรียบเทียบค้นหาข้อมูลจากตารางในฐานข้อมูล - result.php ทำหน้าแสดงรายละเอียดของพนักงานทีละคน โดยจะรับ URL Parameter ชื่อ keywords ใน
รูปแบบ $_GET['keywords'] จากฟอร์มในไฟล์ search.php
ขั้นตอนการสร้างระบบค้นหาข้อมูลที่ยกมาอธิบายในที่นี้ แบ่งเป็นขั้นตอนดังต่อไปนี้
- การสร้างฟอร์มสำหรับพิมพ์คำค้น
- การค้นหาข้อมูลแบบเงื่อนไขเดียว
- การใช้งานระบบค้นหาข้อมูลแบบเงื่อนไขเดียว
- การค้นหาข้อมูลแบบหลายเงื่อนไข
- การใช้งานระบบค้นหาข้อมูลแบบหลายเงื่อนไข
|
ขั้นตอนนี้จะเป็นการสร้างฟอร์มสำหรับพิมพ์คำค้น โดยการแทรกฟอร์มและอ็อบเจ็คต์ของฟอร์มชนิด Text Field สำหรับรับค่าคำค้น
ขั้นตอนการสร้างฟอร์มสำหรับพิมพ์คำค้น:
- เริ่มต้นที่โปรแกรม Dreamweaver คลิกเมนู File > New จะปรากฏไดอะล็อก New Document ขึ้นมา ให้คลิกแท็บ General
คลิกเลือก Dynamic Page > PHP หลังจากนั้นคลิกปุ่ม Create เมื่อปรากฏเว็บเพจว่างๆ ขึ้นมา ให้บันทึกเป็นไฟล์ search.php - เลือกเมนู Modify > Page Properties เมื่อปรากฏไดอะล็อก Page Properties ขึ้นมา ให้กำหนด Properties ของเว็บเพจ
ดังรายละเอียดด้านล่างนี้ หลังจากนั้นคลิกปุ่ม OK
ค่าของไดอะล็อก | ค่าที่กำหนด |
Appearance > Background Image | images/bkg_search.gif |
Title/Encoding > Title | Search employees |
Title/Encoding > Document Type (DTD) | None |
Title/Encoding > Encoding | Thai (Windows) |
ตารางแสดงการกำหนดค่าใน Page Properties
รูปแสดงการกำหนด Page Properties
- แทรกฟอร์มลงในเว็บเพจ โดยคลิกไปที่เมนู Insert > Form > Form
- กำหนด Properties ของฟอร์ม โดยเลือกแท็ก <form> จาก Tag Selector หลังจากนั้นคลิกเมนู Window > Properties
เมื่อปรากฏไดอะล็อก Properties ขึ้นมา ให้กำหนดค่าดังต่อไปนี้
ค่าของไดอะล็อก | ค่าที่กำหนด |
Form name | fmSearch |
Action | result.php |
Method | GET |
ตารางแสดงการกำหนด Property ของฟอร์ม
รูปแสดงการกำหนด Property ของฟอร์ม
- แทรกตารางลงภายในแท็ก <FORM> โดยคลิกที่เมนู Insert > Table แล้วกำหนดค่าดังนี้
รูปแสดงการกำหนดค่าของไดอะล็อก Table |
ตารางแสดงการกำหนดค่าของไดอะล็อก Table |
- คอลัมน์ที่ 1 ของตาราง และให้แทรกข้อความ "คำค้น:" ลงไป
รูปแสดงการแทรกข้อความ "คำค้น"
- คอลัมน์ที่ 2 ของตาราง และให้แทรกอ็อบเจ็คต์ของฟอร์มชนิด Text Field ลงไป โดยคลิกที่เมนู
Insert > Form > Text Field หลังจากนั้นให้กำหนดคุณสมบัติของ Text Field ดังต่อไปนี้
ค่าของไดอะล็อก | ค่าที่กำหนด |
TextField | keywords |
Char Width | 25 |
Max Chars | 25 |
Type | Single line |
ตารางแสดงการกำหนด Property ของ Text Field
รูปแสดงการกำหนด Property ของ Text Field
รูปแสดงไฟล์ search.php หลังการแทรก Text Field
- คอลัมน์ที่ 3 ของตาราง ให้แทรกอ็อบเจ็คต์ของฟอร์มชนิด Button ลงไป โดยคลิกที่เมนู Insert > Form > Button หลังจากนั้นให้กำหนดคุณสมบัติของ Button โดยไปที่เมนู Window > Properties แล้วให้กำหนดค่าดังนี้
ค่าของไดอะล็อก | ค่าที่กำหนด |
Label | Search |
Action | Submit form |
ตารางแสดงการกำหนด Property ของ Button
รูปแสดงการกำหนด Property ของ Button
- บันทึกไฟล์ search.php
รูปแสดงหน้าจอไฟล์ search.php หลังการแทรก Button
|
ขั้นตอนนี้ จะเป็นการ Recordset (Query) สำหรับค้นหาข้อมูลจากฐานข้อมูล โดยจะมีการกำหนดเงื่อนไขในการค้นหาข้อมูลจาก
URL Parameter ชื่อ $_GET['keywords'] ที่ส่งมาจากไฟล์ searchadv.php
การแทรก Recordset (Query) นี้ จะคล้ายกับขั้นตอนการสร้างในไฟล์ list.php เพื่อเป็นการประหยัดเวลา จึงแนะนำให้เปิดไฟล์
list.php ขึ้นมาแล้วบันทึกเป็นไฟล์ resultadv.php
ขั้นตอนการค้นหาข้อมูลแบบเงื่อนไขเดียว (Basic):
- เปิดไฟล์ list.php ของระบบแสดงผลข้อมูลขึ้นมา ให้บันทึก (SAVE AS…) เป็นไฟล์ result.php
- คลิกที่เมนู Window > Bindings ดับเบิลคลิกที่รายการ Recordset (rsEmp) เมื่อปรากฏไดอะล็อก Recordset ขึ้นมา
ให้กำหนดค่าของตัวแปรต่างๆ ดังรายละเอียดต่อไปนี้
NOTE: เปิดไฟล์ list.php จากขั้นตอนการสร้างระบบแสดงผลข้อมูลหรือ PHPWEB\labs\solutions\lab05_displayrecords\list.php |
รูปแสดงการดับเบิลคลิก Recordset (rsEmp) |
รูปแสดงไดอะล็อก Recordset |
ค่าของไดอะล็อก | ค่าที่กำหนด |
Name | rsEmp |
Connection | dbconn |
Table | employees |
Columns | employeeid, firstname, lastname, deptid, phone, extension |
Filter | ช่องที่ 1: firstname หมายถึงให้ค้นหาจากฟิลด์ firstname |
ช่องที่ 2: contains หมายถึงให้ค้นหาแบบประกอบด้วย (LIKE) | |
ช่องที่ 3: URL Parameter หมายถึง รับค่าคำค้นจาก URL Parameter | |
ช่องที่ 4: keywords หมายถึง คำค้นถูกส่งมาเป็น URL Parameter ชื่อ keywords | |
Sort | Firstname , Ascending หมายถึง เรียงลำดับตาม firstname น้อยไปหามาก |
|
เริ่มต้นโดยใช้โปรแกรม Dreamweaver เปิดไฟล์ search.php ขึ้นมา แล้วกดปุ่ม F12 โปรแกรม Internet Explorer
จะถูกเปิดขึ้นมาเรียกใช้งานไฟล์ search.php หลังจากนั้นให้พิมพ์คำค้น และคลิกปุ่ม Search เพื่อค้นหาข้อมูลจากฟิลด์ firstname
|
ในขั้นตอนที่ผ่านมา เราได้ค้นหาข้อมูลโดยในการ Filter ข้อมูลนั้นจะเป็นการเปรียบเทียบค่าฟิลด์ firstname กับ URL Parameter
$_GET['keywords'] ซึ่งก็หมายถึง ค้นหาข้อมูลจากฟิลด์ firstname ฟิลด์เดียวเท่านั้น
การค้นหาด้วยเงื่อนไขที่ซับซ้อนมากกว่านี้ สามารถทำได้โดยการดับเบิลคลิก Recordset(rsEmp) ขึ้นมา แล้วคลิกปุ่ม Advanced…
เพื่อเข้าไปเพิ่มเติมเงื่อนไขการค้นหาข้อมูล
ขั้นตอนการค้นหาข้อมูลแบบหลายเงื่อนไข:
- เปิดไฟล์ list.php ของระบบแสดงผลข้อมูลขึ้นมา ให้บันทึก (SAVE AS…) เป็นไฟล์ result.php
- คลิกที่เมนู Window > Bindings ดับเบิลคลิกที่รายการ Recordset (rsEmp) เมื่อปรากฏไดอะล็อก Recordset ขึ้นมา
ให้คลิกปุ่ม Advanced… เพื่อกำหนดแก้ไขคำสั่ง SQL สำหรับค้นหาหลายเงื่อนไข
รูปแสดงการดับเบิลคลิก Recordset (rsEmp) |
รูปแสดงไดอะล็อก Recordset |
รูปแสดงไดอะล็อก Recordset ในโหมด Advanced
- เมื่ออยู่ในโหมด Advanced จะเห็นว่าในช่อง SQL จะแสดงชุดคำสั่ง SQL ในการเรียกค้นหาข้อมูล ดังรูปคำสั่งด้านล่าง
แล้วทดสอบการค้นหาโดยการกด F12
SELECT employeeid, firstname, lastname, phone, extension FROM employees WHERE (employees.firstname LIKE '%colname%') ORDER BY firstname ASC |
รูปแสดงการกำหนดเงื่อนไขให้ค้นหาจาก firstname
- ปรับคำสั่งในไดอะล็อก Recordset ดังรูปคำสั่งด้านล่าง เพื่อ JOIN ตาราง departments เอาฟิลด์ชื่อแผนก (deptname)
มาแสดงผลและเพิ่มเงื่อนไขให้ค้นหาจากฟิลด์ firstname และ lastname หลังจากนั้นให้ทดสอบการค้นหาโดยเปิด
Dreamweaver ไปที่ไฟล์ search.php แล้วกด F12
SELECT employees.*, departments.deptname FROM employees, departments WHERE employees.deptid = departments.deptid AND ( employees.firstname LIKE '%colname%' OR employees.lastname LIKE '%colname%' ) ORDER BY firstname ASC |
รูปแสดงการ JOIN ตาราง departments เพื่อเอาชื่อแผนกมาแสดง และค้นหาจาก fistname และ lastname
- ปรับคำสั่งในไดอะล็อก Recordset ดังรูปคำสั่งด้านล่าง และเพิ่มเงื่อนไขให้ค้นหาจากฟิลด์ employeeid firstname
lastname email และ deptname หลังจากนั้นให้ทดสอบการค้นหาโดยเปิด Dreamweaver ไปที่ไฟล์ searchadv.php
แล้วกด F12
SELECT employees.*, departments.deptname FROM employees, departments WHERE employees.deptid = departments.deptid AND ( employees.employeeid LIKE '%colname%' OR employees.firstname LIKE '%colname%' OR employees.email LIKE '%colname%' OR departments.phone LIKE '%colname%' ) ORDER BY firstname ASC |
รูปแสดงการกำหนดเงื่อนไขให้ค้นหาจากฟิลด์ firstname, lastname, email, phone
- บันทึกไฟล์ resultadv.php
|
เริ่มต้นโดยใช้โปรแกรม Dreamweaver เปิดไฟล์ searchadv.php ขึ้นมา แล้วกดปุ่ม F12 โปรแกรม Internet Explorer
จะถูกเปิดขึ้นมาเรียกใช้งานไฟล์ searchadv.php หลังจากนั้นให้พิมพ์คำค้น และคลิกปุ่ม Search เพื่อค้นหาข้อมูล
โดยให้ทดสอบพิมพ์คำค้นที่ตรงกับค่าในฟิลด์ employeeid firstname lastname email และ deptname ทีละเงื่อนไข
แล้วสังเกตผลลัพธ์ว่าถูกต้องหรือไม่