วันอังคารที่ 8 มิถุนายน พ.ศ. 2553

การทำภาพแบบกระเบื้อง

1) ไปที่ Layer Pallet เลือกตรง Background Layer แล้วกด Ctrl + J เพื่อทำสำเนาเพิ่มอีกภาพ


2) ทำการเปลี่ยน mode เป็น Overlay
3) ไปที่ Filter> Pixelate> Mosaic




4) กำหนดค่า Cell Size ให้ใหญ่ตามที่ต้องการ เมื่อได้ขนาดที่ต้องการก็กด OK

5) ภาพที่ออกมาจะเป็นแบบนี้



6) ไปที่ Layer Pallet เลือกตรง Layer 1 แล้วกด Ctrl + J เพื่อ Copy ขึ้นมาอีกภาพ

7) เมื่อ Copy แล้วทำการเปลี่ยน mode เป็น Multiply และ Opacity เป็น 75 % 8) ไปที่ Filter---> Stylize---> Find Edges เพื่อทำการสร้างขอบกระเบื้อง เลือก Find Edges นี้มากกว่าหนึ่งครั้งก็ได้ ขึ้นอยู่กับว่าต้องการให้ขอบของกระเบื้องมันเข้มมากน้อยเท่าไร





9) ผลลัพธ์ที่ได้ ภาพจะเห็นเป็นรอยกระเบื้องชัดขึ้น

10) ไปที่ Filter> Blur> Gaussian Blur




11) ปรับค่า Radius ตามใจเรา สำหรับในตัวอย่างนี้ 2 pixel แล้วกด OK

12) เมื่อทำตามขั้นตอนข้างบนแล้วภาพก็จะออกมาประมาณนี้จ้า




















































































































วันจันทร์ที่ 18 มกราคม พ.ศ. 2553

ยากมากมาย (เจ้าค่า)

เป็นอะที่ไม่ค่อยเข้าใจ

ไม่รู้มันเป็นแบบไหน

ไม่รู้ว่าใครนำมันเข้ามา

วันพุธที่ 13 มกราคม พ.ศ. 2553

โค้ดสำหรับสร้างตารางสอบอย่างง่าย (เจ้าค้า)

if (!isset($_POST['regist'])) {
echo "ระบบจัดตารางสอบอย่างง่าย ของนักเรียน 3 คนที่ลงทะเบียนคนละ 3 วิชา";
echo "
";
echo "
";
echo "
";
exit;
}
// แสดงข้อมูลที่รับมาจาก form
echo "
แสดงรายวิชาที่นักเรียนแต่ละคนลงทะเบียนเรียน \n";

$student = split("\n",$_POST['regist']);
foreach($student as $one) {
$subj = split(",",$one);
for($i=0;$i}
// นำข้อมูลแต่ละคน มาแยกเก็บแยกวิชา เช่น a,1,2 ลงตัวแปร $s เพื่อใช้ในการจัดตารางสอบ
foreach($student as $one) {
$subj = split(",",$one);
for($i=1;$i if (!isset($s[$subj[$i]])) $s[$subj[$i]] = $subj[$i] . ",";
$s[$subj[$i]] = $s[$subj[$i]] . $subj[0] . ",";
}
}
// อ่าน $s มาจัดลงตัวแปร $sub เพื่อใช้อ้างวิชาที่ได้ เช่น $sub[0] หมายถึงวิชา "A"
echo "
แสดงชื่อนักเรียนที่ลงทะเบียนในแต่ละวิชา";
$i = 0;
foreach($s as $sepsubj) {
$sepagain = split(",",$sepsubj);
$sub[$i] = $sepagain[0];
$i = $i + 1;
echo $sepsubj . "\n"; // $sepsubj เก็บรหัสนักศึกษาในแต่ละวิชา
}
// จัดกลุ่มตามวัน โดยใช้ while ซ้อน for และตรวจสอบความซ้ำซ้อน
$end = 0;
$i = 0;
while ($end == 0) {
$outday = 0;
for($j=0;$j if (strlen($s[$sub[$j]]) > 2 && $outday == 0) {
$day[$i] = $sub[$j].",";
$base = $s[$sub[$j]];
$s[$sub[$j]] = "";
$outday = 1;
}
}
for($j=1;$j $sbase = $s[$sub[$j]];
$ssubj = split(",",$sbase);
$found = 0;
for($k=1;$k if (stristr($base,$ssubj[$k])) $found = 1;
}
if ($found == 0 && count($ssubj) > 1) {
$s[$sub[$j]] = "";
$day[$i] = $day[$i] . $sub[$j] . ",";
}
}
$i++;
$end = 1;
foreach ($s as $checksubj) {
if (strlen($checksubj) > 2 ) $end = 0;
}
}
echo "
";
// แสดงผลการจัดตารางแล้ว
for($i=0;$i echo "ชั่วโมงที่ ";
echo $i + 1;
echo " สอบวิชา " . $day[$i] . "\n";
}
?>

ผลลัพธ์โค้ด


วันจันทร์ที่ 2 พฤศจิกายน พ.ศ. 2552

คำศัพท์ชนิดการเก็บงาน

VARCHAR (ย่อมาจาก Variable Character Field อ่านว่า วาร์คาร์ หรือ วาร์ชาร์) หมายถึงกลุ่มข้อมูลตัวอักขระที่ไม่สามารถระบุความยาวได้ คำนี้มักใช้เป็นชนิดข้อมูลในระบบจัดการฐานข้อมูล ชนิดข้อมูลประเภท varchar สามารถเก็บข้อมูลตัวอักขระขนาดเท่าใดก็ได้ที่ไม่เกินความยาวที่จำกัดไว้ การจำกัดความยาวก็แตกต่างกันออกไปในแต่ละฐานข้อมูล
TINYINT : สำหรับเก็บข้อมูลชนิดตัวเลขที่มีขนาด 8 บิต ข้อมูลประเภทนี้เราสามารถกำหนดเพิ่มเติมในส่วนของ "แอตทริบิวต์" ได้ว่าจะเลือกเป็น
TEXT : สำหรับเก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่สามารถเก็บได้มากขึ้น โดยสูงสุดคือ 65,535 ตัวอักษร หรือ 64KB เหมาะสำหรับเก็บข้อมูลพวกเนื้อหาต่างๆ ที่ยาวๆ
DATE : สำหรับเก็บข้อมูลประเภทวันที่ โดยเก็บได้จาก 1 มกราคม ค.ศ. 1000 ถึง 31 ธันวาคม ค.ศ. 9999 โดยจะแสดงผลในรูปแบบ YYYY-MM-DD
SMALLINT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 16 บิต จึงสามารถเก็บค่าได้ตั้งแต่ -32768 ถึง 32767 (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 65535 (ในกรณี UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT
MEDIUMINT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 24 บิต นั่นก็หมายความว่าสามารถเก็บข้อมูลตัวเลขได้ตั้งแต่ -8388608 ไปจนถึง 8388607 (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 16777215 (ในกรณีที่เป็น UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT
INT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 32 บิต หรือสามารถเก็บข้อมูลได้ตั้งแต่ -2147483648 ไปจนถึง 2147483647 ครับ (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 4294967295 (ในกรณีที่เป็น UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT
BIGINT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 64 บิต สามารถเก็บข้อมูลได้ตั้งแต่ -9223372036854775808 ไปจนถึง 9223372036854775807 เลยทีเดียว (แบบคิดเครื่องหมาย)
FLOAT[(M,D)] : ที่กล่าวถึงไปทั้งหมด ในตระกูล INT นั้นจะเป็นเลขจำนวนเต็ม หากเราบันทึกข้อมูลที่มีเศษทศนิยม มันจะถูกปัดทันที ดังนั้นหากต้องการจะเก็บค่าที่เป็นเลขทศนิยม ต้องเลือกชนิดขอฟิลด์เป็น FLOAT โดยจะเก็บข้อมูลแบบ 32 บิต
DOUBLE[(M,D)] : สำหรับเก็บข้อมูลประเภทตัวเลขทศนิยม เช่นเดียวกับ FLOAT แต่มีขนาดเป็น 64 บิต สามารถเก็บได้ตั้งแต่ -1.7976931348623157E+308 ถึง -2.2250738585072014E-308, 0 และ 2.2250738585072014E-308 ถึง 1.7976931348623157E+308
DECIMAL[(M,D)] : สำหรับเก็บข้อมูลประเภทตัวเลขทศนิยม เช่นเดียวกับ FLOAT แต่ใช้กับข้อมูลที่ต้องการความละเอียดและถูกต้องของข้อมูลสูง
DATETIME : สำหรับเก็บข้อมูลประเภทวันที่ และเวลา โดยจะเก็บได้ตั้งแต่ 1 มกราคม ค.ศ. 1000 เวลา 00:00:00 ไปจนถึง 31 ธันวาคม ค.ศ. 9999 เวลา 23:59:59 โดยรูปแบบการแสดงผล เวลาที่ทำการสืบค้น (query) ออกมา จะเป็น YYYY-MM-DD HH:MM:SS
TIMESTAMP[(M)] : สำหรับเก็บข้อมูลประเภทวันที่ และเวลาเช่นกัน แต่จะเก็บในรูปแบบของ YYYYMMDDHHMMSS หรือ YYMMDDHHMMSS หรือ YYYYMMDD หรือ YYMMDD แล้วแต่ว่าจะระบุค่า M เป็น 14, 12, 8
TIME : สำหรับเก็บข้อมูลประเภทเวลา มีค่าได้ตั้งแต่ -838:59:59 ไปจนถึง 838:59:59 โดยจะแสดงผลออกมาในรูปแบบ HH:MM:SS
YEAR[(2/4)] : สำหรับเก็บข้อมูลประเภทปี ในรูปแบบ YYYY หรือ YY แล้วแต่ว่าจะเลือก 2 หรือ 4 (หากไม่ระบุ จะถือว่าเป็น 4 หลัก) โดยหากเลือกเป็น 4 หลัก จะเก็บค่าได้ตั้งแต่ ค.ศ. 1901 ถึง 2155 แต่หากเป็น 2 หลัก จะเก็บตั้งแต่ ค.ศ. 1970 ถึง 2069
CHAR : สำหรับเก็บข้อมูลประเภทตัวอักษร แบบที่ถูกจำกัดความกว้างเอาไว้คือ 255 ตัวอักษร ไม่สามารถปรับเปลี่ยนได้เหมือนกับ VARCHAR หากทำการสืบค้นโดยเรียงตามลำดับ
TINYBLOB : สำหรับเก็บข้อมูลประเภทไบนารี ได้แก่ ไฟล์ข้อมูลต่างๆ, ไฟล์รูปภาพ, ไฟล์มัลติมีเดีย เป็นต้น คือไฟล์อะไรก็ตามที่อัพโหลดผ่านฟอร์มอัพโหลดไฟล์ในภาษา HTML โดย TINYBLOB นั้นจะมีเนื้อที่ให้เก็บข้อมูลได้ 256 ไบต์
TINYTEXT : ในกรณีที่ข้อความยาวๆ หรือต้องการที่จะค้นหาข้อความ โดยอาศัยฟีเจอร์ FULL TEXT SEARCH ของ MySQL เราอาจจะเลือกที่จะไม่เก็บข้อมูลลงในฟิลด์ประเภท VARCHAR ที่มีข้อจำกัดแค่ 256 ตัวอักษร แต่เราจะเก็บลงฟิลด์ประเภท TEXT แทน โดย TINYTEXT นี้ จะสามารถเก็บข้อมูลได้ 256 ตัวอักษร
BLOB : สำหรับเก็บข้อมูลประเภทไบนารี เช่นเดียวกับ TINYBLOB แต่สามารถเก็บข้อมูลได้ 64KB
MEDIUMBLOB : สำหรับเก็บข้อมูลประเภทไบนารี เช่นเดียวกับ TINYBLOB แต่เก็บข้อมูลได้ 16MB
MEDIUMTEXT : เก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่เก็บข้อมูลได้ 16,777,215 ตัวอักษร
LONGBLOB : สำหรับเก็บข้อมูลประเภทไบนารี เช่นเดียวกับ TINYBLOB แต่เก็บข้อมูลได้ 4GB
LONGTEXT : เก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่เก็บข้อมูลได้ 4,294,967,295 ตัวอักษร
SET : สำหรับเก็บข้อมูลที่เป็นกลุ่มของข้อมูลที่ยอมให้เลือกได้ 1 ค่าหรือหลายๆ ค่า ซึ่งสามารถกำหนดได้ถึง 64 ค่า
ENUM(Enumeration) >> หมายถึงเซตของข้อมูลชุดหนึ่งที่มีจำนวนสมาชิกที่กำหนดไว้แน่นอนและทราบค่าทุกตัว ซึ่งมักจะเป็นข้อมูลที่มีลักษณะคงที่

BINARYระบบเลขที่มีสัญลักษณ์เพียงสองตัวคือ 0 (ศูนย์) กับ 1 (หนึ่ง) บางครั้งอาจหมายถึงการที่มีโอกาสเลือกได้เพียง 2 ทาง เช่น ปิดกับเปิด, ไม่ใช่กับใช่, เท็จกับจริง, ซ้ายกับขวา เป็นต้น
BOOL คือข้อมูลที่มีค่าเป็นจริง (True) หรือเท็จ (False)
VARBINARY คือ มีลักษณะการเก็บคล้าย Varcha คือการเก็บข้อมูลตามที่รับมาจริงเท่านั้น มีขนาดสูงสุดมากถึง 8000 ไบต์

วันพุธที่ 28 ตุลาคม พ.ศ. 2552

การติดตั้งโปรแกรม Appserv 2.5.9

ดาวโหลดโปรแกรม Appserv ที่ www.kitt.kvc.ac.th โดยเลือกเวอร์ชั่นที่ต้องการติดตั้ง
ขั้นตอนในการติดตั้ง โปรแกรม appserv โดยดับเบิ้ลคลิกที่ไฟล์ Appserv เวอร์ชั่นที่ต้อง แล้วกด Next เพื่อที่ต้องการิดตั้ง แล้วจะปรากฏหน้าจอรายละเอียดต่างๆ แล้วคลิกที่ปุ่ม I Agree แล้วจะเข้าสู่ ปลายทางที่ต้องการจะติดตั้งโปรแกรมไว้ถ้าต้องที่จะเก้บไว้ที่ ไฟล์ที่แสดงอยู่ ให้คลิกที่ปุ่ม Next แต่ถ้าไม่ต้องการเก้บไว้ที่ไฟล์ที่แสดงอยู่ให้กดปุ่ม Browse เพื่อเปลี่ยนปลายทางที่ต้องการเก็บโปรแกรม เมื่อคลิกปุ่ม Next แล้ว จะปรากฏหน้าจอให้เลือก Package components ให้คลิกช่องสี่เหลี่ยมเล็กๆทั้งหมด แล้วกดปุ่ม Next ต่อไปจะปรากฏหน้าจอให้เติมข้อมุลลงไปในช่งว่าง ช่องแรกให้เติมคำว่า "Localhost" ช่องที่ 2 เติวคำว่า Admin เมื่อเติมข้อมูลเส๊จให้กดปุ่ม Next จะเป้นการตั้งรหัส passwork ให้ตั้งเหมือนกันทั้ง 2 ช่อง เมื่อเติมเส็จแล้วให้กดปุ่ม Install มาถึงขั้นตอนสุดท้ายให่กดปุ่ม Finish เป้นการเส็จสิ้นการติดตั้งโปรแกรม
การติดตั้งโปรแกรม Appserv 2.5.9

ดาวโหลดโปรแกรม Appserv ที่ www.kitt.kvc.ac.th โดยเลือกเวอร์ชั่นที่ต้องการติดตั้ง
ขั้นตอนในการติดตั้ง โปรแกรม appserv โดยดับเบิ้ลคลิกที่ไฟล์ Appserv เวอร์ชั่นที่ต้อง แล้วกด Next เพื่อที่ต้องการิดตั้ง แล้วจะปรากฏหน้าจอรายละเอียดต่างๆ แล้วคลิกที่ปุ่ม I Agree แล้วจะเข้าสู่ ปลายทางที่ต้องการจะติดตั้งโปรแกรมไว้ถ้าต้องที่จะเก้บไว้ที่ ไฟล์ที่แสดงอยู่ ให้คลิกที่ปุ่ม Next แต่ถ้าไม่ต้องการเก้บไว้ที่ไฟล์ที่แสดงอยู่ให้กดปุ่ม Browse เพื่อเปลี่ยนปลายทางที่ต้องการเก็บโปรแกรม เมื่อคลิกปุ่ม Next แล้ว จะปรากฏหน้าจอให้เลือก Package components ให้คลิกช่องสี่เหลี่ยมเล็กๆทั้งหมด แล้วกดปุ่ม Next ต่อไปจะปรากฏหน้าจอให้เติมข้อมุลลงไปในช่งว่าง ช่องแรกให้เติมคำว่า "Localhost" ช่องที่ 2 เติวคำว่า Admin เมื่อเติมข้อมูลเส๊จให้กดปุ่ม Next จะเป้นการตั้งรหัส passwork ให้ตั้งเหมือนกันทั้ง 2 ช่อง เมื่อเติมเส็จแล้วให้กดปุ่ม Install มาถึงขั้นตอนสุดท้ายให่กดปุ่ม Finish เป้นการเส็จสิ้นการติดตั้งโปรแกรม