Category: PHP

class delete mysql

By สุดเดช, 13 กรกฎาคม 2009 19:14

จากครั้งที่แล้วมา ผมเคยได้ เสนอ การใช้ class เพื่อติดต่อฐานข้อมูล
จากลิงค์นี้น่ะคับ class db

วันนี้ผมจะนำเสนอ เกี่ยวกับการ ลบ ข้อมูลในตารางออก โดย ที่มี ID เกี่ยวข้องกัน

1 : 1 relation

มาดูโค้ดของ การลบ ก่อนคับ โค้ดตรงนี้ ให้นำ ไปใส่ไว้ใน class อันที่แล้วก่อนน่ะคับ class db

function del($table="table",$where="where"){
 $sql="DELETE FROM ".$table." WHERE ".$where;
 if (mysql_query($sql)){
 return true;
 }else{
 $this->_error();
 return false;
 }
 }

จากนั้นก็มาเขียนโค้ดในหน้าใหม่ คับ

$sql=$db->select_query("show tables;");
 while(list($tables_name)=$db->fetch($sql)){
 $tables_name;
 $db->del($table_name,"model_id = $model_id");
 }

แค่เพียงเท่านี้ท่านก็จะ สามารถลบ ข้อมูลที่มี ความสัมพันธ์ แบบ 1:1 ได้อย่างรวดเร็วคับ ไม่ว่าจะมี กี่ ตาราง(table)ก็ตาม

ข้อมูลเผ่ยแพร่ได้คับ ขอเครดิตด้วย ขอรับ

Bookmark and Share

php read file and directory

By สุดเดช, 27 มิถุนายน 2009 23:22

วันนี้ก็มาแจกโค้ดกันอีกแ้ล้วน่ะคับพี่น้อง

เรื่องของการ ใช้ PHP เข้าไป อ่านไฟล์ และ Directory น่ะคับ โ้ค้ดก็ตามนี้คับผม


<?

$i=1;

$countdir=0;

$uncountdir=0;

if ($handle = opendir('.')) {

while (false !== ($file = readdir($handle))) {

$color=($i%2==0)?"#999999":"#000000";

$number=filesize($file)/1024;

$size=number_format($number,'2','.',',');

if($size<"1000" && $file!=="images" && $file!=="css" && $file!=="index.php" && $file!=="sudej"){ // กำหนดไม่เอาไฟล์แสดง

if ($file != "." && $file != "..") {

echo "<a href=\"$file\">$file</a>&nbsp;$size&nbsp;KB";

$i++;

$countdir++;

}

}// close size

$uncountdir++;

}

closedir($handle);

}

?>
Bookmark and Share

Class insert comma

By สุดเดช, 30 เมษายน 2009 21:57

คลาสนี้จะรับค่าของ อาร์เรย์เข้ามาหลาย ๆ จำนวนแล้ว ตัวสุดท้ายจะไม่มีคอมม่า

ตัวอย่างข้อมูล : ABCD

result : A,B,C,D

<?
class class_insert_comma{

static function read_array($read){
foreach($read as $key => $val){
echo $val;
}
}
public function change_value($value,$compare_array){
foreach($value as $name => $val){
if($val){
$file_array[]=$compare_array["$val"];
}
}
$file_array=$this->insert_comma($file_array);
return($file_array);
}

private function insert_comma($value_array){
$uncomma=end($value_array);
foreach($value_array as $name){
if($uncomma == $name){
$file_c[]=$name;
}else{
$file_c[]="$name , ";
}
}
return $file_c;
}

}//close class
?>
Bookmark and Share

class upload file

By สุดเดช, 6 มีนาคม 2009 13:57

วันนี้มาแจก อีกแล้วครับ คลาส อัพโหลดไฟล์

ดูโค้ดและ ก็ภาพการทำงานล่ะกันน่ะคับ

<?
### class upload version 2
##  author sudej.com
define("PATH","images/");
define("FILE_LIMIT","194304"); //4194304 = 4MB
class upload{

public function check_file_to_upload($file){

$file_name = $_FILES["userfile"]["name"];
$file_size = $_FILES["userfile"]["size"];
$file_temp = $_FILES["userfile"]["tmp_name"];
$file_err = $_FILES["userfile"]["error"];

echo "<div style=\"padding: 4px;\">ข้อมูลทั่วไป ของไฟล์ที่ทำการอัพโหลด</div>
<ul>
<li>ชื่อไฟล์ : <span style=\"color:#933\";>" .$file_name. "</span></li>
<li>ชนิด : <span style=\"color:#933\";>" .$this->check_file_type($file_name)."</span></li>
<li>ขนาด : <span style=\"color:#933\";>" .$this->convert_byte_to_kb($file_size). "</span> กิโลไบต์</li>
<li>เทมโพลารี ่: <span style=\"color:#933\";>" .$file_temp. "</span></li>
<li>ผิดพลาด : <span style=\"color:#933\";>" . $file_err. "</span></li>
</ul>";
echo"<div style=\"border:1px dashed green; padding:10px; width:400;\">
<ul>
<li>";
$this->check_allow_file($this->check_file_type($file_name));
echo"</li>
<li>";
$this->check_size($file_size);
echo"</li><li>";
$this->check_error_upload($file_error,$file_temp,$file_name);
echo"</li></ul>
</div>";
}// close function

function convert_byte_to_kb($file_size){
$file_size = $file_size/1024;
$file_size = number_format($file_size,"2",".",",");
return $file_size;
}

private function check_file_type($file_name){
$file_type = $file_name;
$file_type_length = strlen($file_type) - 3;
$file_type = substr($file_type, $file_type_length);
return($file_type);
}

private function check_size($file_size){
if($file_size > FILE_LIMIT){
echo "<span style=\"color:#F03\"><strong>ขนาดของไฟล์เกินกว่าที่กำหนดไว้ </strong><span><br />";
echo "ขนาดที่อนุญาตให้ใช้่ ".$this->convert_byte_to_kb(FILE_LIMIT)." กิโลไบต์";
exit();
}else{
echo"<span style=\"color:#6C3;\"><strong>อนุญาิตขนาดไฟล์</strong></span><br />";
}
}

private function check_allow_file($file_type){
$file_type = strtolower($file_type);
$files = array();
$files[] = "jpeg";
$files[] = "jpg";
$files[] = "gif";
$files[] = "png";
$chk = array_search($file_type, $files);
if($chk) {
echo "<span style=\"color:#6C3;\"><strong>อนุญาิตไฟล์</strong></span><br />";
} else {
echo "<span style=\"color:#F03\"><strong>ไม่อนุญาติ</strong></span><br />";
echo "ไฟล์ที่ได้รับการ อนุญาต<br />";
foreach($files as $key){
echo"   -  $key<br />";
}
exit();
}
}

private function check_error_upload($file_error,$file_temp,$file_name){
$error_count = count($file_error);
if($error_count > 0) {
for($i = 0; $i <= $error_count; ++$i) {
echo $_FILES["userfile"]["error"][$i];
}
} else {
if(@move_uploaded_file($file_temp, PATH.$file_name."")) {
echo "<h3>Upload Successful ... </h3>";
} else {
echo "<h3>ERROR</h3>";
}
}
}

} //close class
?>
not allow picture

not allow picture

ไฟล์มีขนาดใหญ่กว่าที่ระบบกำหนด

ไฟล์มีขนาดใหญ่กว่าที่ระบบกำหนด

upload_file_ver2

เครดิต สุดเดช ดอทคอม

ตัวพ่อ www.php.net

Bookmark and Share

Crontab backup database

By สุดเดช, 27 กุมภาพันธ์ 2009 15:16

จากเมื่อวาน << คลิ๊กเพื่อดูเรื่องที่ต่อเนื่อง

วันนี้จะบอกวิธีการติดตั้ง Crontab กันน่ะคับ
เริ่มจากการสร้างไฟล์ Crontab ขึ้นมาก่อนน่ะคับ

15 4 * * * php -q /home/backup/rbackup.php > /dev/null 2>&1

backup_crontab

ความหมายของมันก็คือ ทุก ๆ วัน เวลา ตี 4.15 ให้ทำการ รัน สริปต์ ที่ชื่อว่า rbackup.php
เมื่อสร้างเสร็จแล้ว คราวนี้ก็มาดูผลการทำงาน ของ script กันน่ะคับ

backup_ssh

backup_mail2

backup_mail3

backup_mail4

ขอบคุณทุกท่าน ที่ดูแล้ว จะนำไปให้ให้เกิดประโยชน์ต่อไป
ขอบคุณทุกท่าน ที่เอาไปใช้แล้วให้เครดิตผม

กันลืม

crontab filename       	การนำเอาคำสั่ง crontab เข้ามาจาก ไฟล์อื่น

crontab -e                แก้ไข crontab ปัจจุบัน

crontab -l                 ดูคำสั่ง crontab ทั้งหมดที่มีอยู่

crontab -r                 ลบคำสั่ง crontab ที่มีทั้งหมด

crontab -u user          เป็นคำสั่งของผู้ดูแลระบบเท่านั้น(administrators) เพื่อใช้ดู  แก้ไข ลบ crontab ของ user แต่ล่ะคน

By default cron jobs sends a email to the user account executing the cronjob.  If this is not needed put the following command At the end of the cron job line  .

 >/dev/null 2>&1

****
15 * * * * rm -rf /var/www/html/xxx.com/ocache/*.png > /dev/null 2>&1

sp thx[1]: NECTEC
sp thx[2]: Thai Admin

Bookmark and Share

php script backup database

By สุดเดช, 26 กุมภาพันธ์ 2009 20:17

วันนี้ผมจะมานำเสนอ การ Backup database โดยใช้ php น่ะคับ

เป็นการ backup ข้อมูลผ่าน สริปต์ โดยใช้ ตัว crontab ใน Linux เป็นตัวเรียก สริปต์นี้

ใ้ห้ทำงานน่ะคับ วันนี้จะนำเสนอ ในเรื่องของ สริปต์กันก่อนน่ะคัีบ

ผมได้ เรียนรู้บางคำสั่ง จาก อาจารย์ เปิ้ล แอบ เซิฟ  และ การโค้ดดิ้ง แนะแนวโดยพี่แม๊กมอไซค์คับ

โดยการ backup ในครั้งนี้ เมื่อทำการแบ๊กอัพ เสร็จแล้ว มันจะส่งเมล์ไปบอก ยัง ผู้ดูแลระบบ
ในครั้งต่อไปผมจะ นำ คำสั่ง พร้อมกับ ภาพ มาประกอบให้ดูกันน่ะคับ
ขอบคุณทุกท่าน ที่ดูแล้ว จะนำไปให้ให้เกิดประโยชน์ต่อไป
ขอบคุณทุกท่าน ที่เอาไปใช้แล้วให้เครดิตผม

สังคมน่าอยู่เพราะว่ามีคนมีน้ำใจ

sp thx[1]: NECTEC
sp thx[2]: Thai Admin

<?

class BackUp{

function WhatBackup($whatBackup){
if (    (!$whatBackup) || ($whatBackup == "")    )    {
die("Specify folder to backup");
}
$this->whatBackup    = $whatBackup;
}

###    Make dir if not exists    ###
function WhereBackup($whereBackup){
$this->whereBackup    = $whereBackup;
}

###    Build FileName    ###
function FileName($fileName){
$today        = date("Y_m_d_H-i");
$fileName    = (    (!$fileName) || ($fileName == "")    ) ? $today : $fileName;
$this->fileName    = $fileName;
}
###    Do It    ###
function Backup(){

$today        = date("d-m-Y, H:i:s");
$comm         = "tar cfvz ".$this->whereBackup."/phpbb_".$this->fileName.".tar.gz ".$this->whatBackup;
###    If u want All output, use passthru() function    ###

### Send E-mail ###

$run        = exec($comm);
$msg        = ($run != "") ? "Backup OK" : "Backup FAILED";

$to  ="webxxx@mail.com";

$subject = "Backup system Database ip xxx [phpbb]";

$message = "Backup System Report Server : ip xxx <br />";
$message .="Date : ".$today ."<br />";
$message .="Status : ".$msg."<br />";
$message .="What Backup : ".$this->whatBackup."<br />";
$message .="Where Backup : ".$this->whereBackup."<br />";
$message .="File name : phpbb_".$this->fileName.".tar.gz";

$headers  = "MIME-Version: 1.0" . "rn";
$headers .= "Content-type: text/html; charset=utf-8" . "rn";
$headers .= "From: email@mail.com" . "rn";
$headers .= "X-Mailer: PHP/".phpversion();
@mail($to, $subject, $message, $headers);
exec("sleep 30");
}

}

?>
Bookmark and Share

TRUNCATE TABLES ALL

By สุดเดช, 19 กุมภาพันธ์ 2009 19:25

เมื่อผู้พัฒนา เรื่องเข้าใจ ในการทำงานของ คลาส ดาต้าเบส แล้ว
ต่อจากนี้ผมจะเอาตัวที่จัดการ การทำงาน ของ MySQL ตัวหนึ่งมาให้รู้กัน
นั้นคือ คำสั่ง TRUNCATE นั้นเองการทำงานของคำสั่งนี่คือการทำให้ Table ที่ทุกสั่งนั้น จะเป็น EMPTY ทั้งหมด
ในโปรแกรม phpmyadmin นั้นมีอยู่แล้ว แต่ว่า ผมอยากเขียนขึ้นมาใหม่อ่ะ ขี้เกียจไปเข้ามันช้า

มาดูการเขียนกันคับ
รูปแบบคำสั่งของมันจะเป็นแบบนี้คับ และ เพิ่มเติมให้อีกอันน่ะคับ นั้นก็คือตัว SHOW TABLES;

TRUNCATE TABLE ชื่อเทเบิ้ล;

ex TRUNCATE TABLE tbl_model;

งั้นมาดูโค้ดที่ผมเขียนกันเลยน่ะคับ

ขั้นตอนแรกก็ include ไฟล์ที่ชื่อว่า class.mysql.php เข้ามาก่อนน่ะคับ
แ้ล้วไปตั้ง ค่า config ที่ตัว constant กันก่อนคับ ลอง ๆ หาดู จะได้คล่อง
ถ้าติดตรงไหนก็ถามผมได้คับยินดีตอบคับ

<?
include("class.mysql.php");

$db = new db;
$db->connectdb(DB_NAME,DB_USERNAME,DB_PASSWORD);

$tables=$_GET["tables"];
if($tables){
if($tables=="all"){

$sql=$db->select_query("show tables;");
while(list($query_tables)=$db->fetch($sql)){
$db->select_query("TRUNCATE TABLE $query_tables;");
}
echo"TRUNCATE TABLE ALL";
header("refresh: 3; url=truncate_table.php");
}else{
$check=$db->select_query("TRUNCATE TABLE $tables;");
if($check){
echo"System :: <br />";
echo"<u>TRUNCATE TABLE $tables;</u><br />";
echo" Finish<br />";
header("refresh: 3; url=truncate_table.php");
}else{
echo"Have not your select table";
header("refresh: 3; url=truncate_table.php");
}
}
}else{
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>TRUNCATE TABLE </title>
</head>

<body>
<h1>Select Truncate Table</h1>
<ul>
<?
$sql=$db->select_query("show tables;");
while(list($show_tables)=$db->fetch($sql)){
?>
<li>
<a href="?tables=<?=$show_tables;?>" onclick="javascript:return confirm('TRUNCATE TABLE <?=$show_tables;?>;');">
<?=$show_tables;?>
</a>
</li>
<?
}
?>
</ul>
<a href="?tables=all" onclick="javascript:return confirm('TRUNCATE TABLE ALL;');">
[TRUNCATE TABLES ALL]</a>
</body>
</html>
<?
}
?>

RESULT :

truncate_table

ใครมีอะไรที่เจ๋ง ๆ ก็แนะนำกันหน่อยน่ะคับ โลกใบนี้หาความรู้ได้ทุกวันจริง ๆ ฮ าๆ

Bookmark and Share

database class

เขียนคลาสขึ้นมาเพื่อควบคุมการใช้งาน DATABASE ได้อย่างมีประสิทธิ์ภาพ
ขอขอบคุณ พี่แม๊กมอไซค์ สำหรับโค้ดบางส่วนในการพัฒนางานในครั้งนี้

class db{
var $host = DB_HOST;
var $database;
var $connect_db;
var $selectdb;
var $db;
var $sql;
var $table;
var $where;
public function connectdb($db_name="database",$user="username",$pwd="password"){
$this->database = $db_name;
$this->username = $user;
$this->password = $pwd;
$this->connect_db = mysql_pconnect($this->host, $this->username, $this->password ) or $this->_error();
$this->db = mysql_select_db ( $this->database, $this->connect_db) or $this->_error();

mysql_query("SET NAMES UTF8");
mysql_query("SET character_set_results=utf8");
return true;
}
//// MYSQL Query ////
function select_query($sql="sql"){
if ($result = mysql_query($sql)){
return $result;
}else{
$this->_error();
return false;
}
}
//// MYSQL Result ////
function fetch($sql="sql"){
if ($result = mysql_fetch_array($sql)){
return $result;
}else{
$this->_error();
return false;
}
}
} // close class

จะมีงานต่อจากนี้ ให้ผู้ที่จะใช้ในการพัฒนา ตั้งชื่อไฟล์นี้ไว้ว่า class.mysql.php คับผม

Bookmark and Share

การตั้งค่า utf8

By สุดเดช, 21 มกราคม 2009 18:33

สำหรับท่านที่ เปลี่ยนมาใช้ utf-8 แล้วเกิดปัญหา
เวลา Browser เปิดข้อมูลแล้วเกิดปัญหาตัวอักษรไม่แสดงผล
ตามที่เราตั้งค่าไว้
21-1-2552-18-24-16

ปัญหามันเกิดมาจาก ตัว Content-Type:text/html; ไม่ยอมเรียกค่า ปกติมันออกมา

เราก็มีวิธีแก้ปัญหาดังนี้คับ

สำหรับคนใช้ Linux fedora, redhat น่ะคับ
อับดับแรกก็ไปแก้ไข ไฟล์ที่ชื่อว่า httpd.conf

<code>##########################
AddDefaultCharset UTF-8
AddCharset ISO-8859-1  .iso8859-1  .latin1
AddCharset UTF-8       .utf8
AddCharset utf-8       .utf8
AddCharset TIS-620      .tis-620        th
##########################

สำหรับคนที่ไม่สามารถแก้ไขได้เนื่องจากท่านไม่ Admin ระบบ
ก็ให้เขียนไฟล์ .htaccess หรือ htaccess.txt
แล้วให้ upload ไปยังที่ directory ที่เก็บไฟล์ไว้ของผมอยู่ที่ htdocs คับ
ซึ่งของผมเช่า host ไว้ที่ www.appservhosting.com จารย์เปิ้ล แห่ง appservnetwork.com

<code><IfModule mod_rewrite.c>
AddDefaultCharset utf-8
</IfModule>

ขั้นตอนสุดท้ายมันยังไม่มาอีก
นี้เลยคับ ระบุตัวนี้ไว้ที่หน้าที่จะแสดงเลยคับ

header( 'Content-Type:text/html; charset=utf-8');


หรือใส่ตัว meta กำหนด content-type น่ะคับ

<code><meta http-equiv="content-type" content="text/html; charset=utf-8" />

ไม่ออกให้ตบ ลองดูคับ
21-1-2552-18-25-05
สุดเดช แห่ง สุดเดช บล๊อก ได้กล่าวไว้ว่า
การแบ่งบันสิ่งดี ๆ ให้แก่กัน ทำให้สังคมเราน่าอยู่ขึ้น

Bookmark and Share

Array 2 Dimensions

By สุดเดช, 15 มกราคม 2009 20:31

วันนี้ผมจะพูดถึงเรื่องการสร้าง อาร์เรย์ สองมิติคับ

เป็นการนำเอาค่าที่ใกล้เคียงกันเข้ามาเก็บไว้ในอาร์เรย์ แล้ว ให้ตัวโปรแกรมแปลงเป็นข้อมูลที่มีดังกล่าว

แสดงผลออกมา คราวนี้ผมจะ นำเอาโค้ดมาใส่ไว้ด้วยน่ะคับ

ขั้นตอนแรก นำตัวแปล อาร์เรย์มากำหนด ไว้ก่อนคับ
ดังภาพ

2dimension-1

$file_sound_array=array(1=>"$mp3","$acc","$rm","$wav","$wma");

$file_vdo_array=array(1=>"$mp4","$gp3","$wmv","$flv");

$file_picture_array=array(1=>"$jpg","$bmp","$gif","$tiff");

$file_document_array=array(1=>"$doc","$xls","$ppt","$pdf","$txt");

$file_array=array("sound"=>$file_sound_array,"vdo"=>$file_vdo_array,"picture"=>$file_picture_array,"document"=>$file_document_array);

เมื่อได้แล้วเราก็ไปสร้างคลาสกันเลยคับ
ภาพ
2dimension-2


class class_file_support{
function file_support($file_array){
global $FILE_SOUND,$FILE_VDO,$FILE_PICTURE,$FILE_DOCUMENT;

foreach($file_array as $key => $val_array){
if($key=="sound"){
echo"- ไฟล์เสียง : ";
foreach($val_array as $type_sound => $key_sound){
if($key_sound){
echo $FILE_SOUND["$key_sound"].", ";
}
}
}//close if sound

if($key=="vdo"){
echo"
- ไฟล์วีดีโอ : ";
foreach($val_array as $type_vdo => $key_vdo){
if($key_vdo){
echo $FILE_VDO["$key_vdo"].", ";
}
}
}//close if vdo

if($key=="picture"){
echo"
- ไฟล์ภาพ : ";
foreach($val_array as $type_picture => $key_picture){
if($key_picture){
echo $FILE_PICTURE["$key_picture"].", ";
}
}
}//close if picture

if($key=="document"){
echo"
- ไฟล์เอกสาร : ";
foreach($val_array as $type_document => $key_document){
if($key_document){
echo $FILE_DOCUMENT["$key_document"].", ";
}
}
}//close if document
}// close big loop array

}// close function
}//close Class 

แล้วผลก็จะออกมาดังภาพ สุดท้ายนี้คับ

ตามคำสั่งนี้คับ

$class_file_support->file_support($file_array);

2dimension-3

Bookmark and Share

Panorama theme by Themocracy