วันพุธที่ 31 สิงหาคม พ.ศ. 2554

การสร้าง Flash chart ด้วย Anychart แบบติดต่อฐานข้อมูล

ใช้ไฟล์อยุ่ 2 ไฟล์ในการแสดงผลคือ
1.
1. สำหรับแสดงผล Anychart
  name : aychart.htm
<!-- saved from url=(0014)about:internet -->
<html xmlns="http://www.w3.org/1999/xhtml" >
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link href="../AnyChart/styles/style.css" rel="stylesheet" type="text/css"></link>
  <link href="../AnyChart/styles/style.css" rel="stylesheet" type="text/css"></link>
  <script type="text/javascript" language="JavaScript" src="../AnyChart/js/AnyChart.js"></script>
  <script type="text/javascript" language="JavaScript" src=".../AnyChart/anychart/gallery/GalleryItem.js"></script>
  <title>ปริมาณน้ำไหลเ้ข้า-ระบายผ่านเครื่องและผ่าน Spillway รายวันเขื่อนสิริกิติ์ </title>
     <script src="../AnyChart/anychart/gallery/Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
</head>
  <body topmargin="0">
  <table align="center" vspace="0" hspace="0">
   <tr valign="Center">
    <td id="sample" height="100%" colspan="2" align="Center">
     <script type="text/javascript">
AC_FL_RunContent( 'id','chart','name','chart','width','1000','height','600','codebase','http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab','pluginspage','http://www.adobe.com/go/getflashplayer','src','../AnyChart/swf/AnyChart','bgcolor','#FFFFFF','allowscriptaccess','always','flashvars','XMLFile=anydata.php','movie','../AnyChart/swf/AnyChart' ); //end AC code
</script><noscript>
      <object id="chart"
        name="chart"
        classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
        width="1000"
        height="600"
        codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
       <param name="movie" value="../AnyChart/swf/AnyChart.swf" />
       <param name="bgcolor" value="#FFFFFF" />
       <param name="allowScriptAccess" value="always" />
       <param name="flashvars" value="XMLFile=anydata.php" />
     
       <embed type="application/x-shockwave-flash"
           pluginspage="http://www.adobe.com/go/getflashplayer"
           src="../AnyChart/swf/AnyChart.swf"
           width="1000"
           height="600"
           id="chart"
           name="chart"
           bgColor="#FFFFFF"
           allowScriptAccess="always"
           flashvars="XMLFile=anydata.php" />
     
      </object>  
     </noscript>
    </body>
</html>


2. file anychart Setting และส่งออกเป็น Head type XML เพื่อให้ Anychart รู้จัก
   name : anydata.php

<?php require_once('Connections/xxxx.php');
header('content-type:text/xml'); //ส่วนนี้สำคัญมากกำหนดให้ php ส่ง Head เป็น XML ให้ Anychart รู้จัก
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;   
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}
mysql_select_db($database_sk50, $sk50);
$query_rs_tu01 = "SELECT xxxxxx";
$rs_tu01 = mysql_query($query_rs_tu01, $sk50) or die(mysql_error());
$row_rs_tu01 = mysql_fetch_assoc($rs_tu01);
$totalRows_rs_tu01 = mysql_num_rows($rs_tu01);
do {
     $data0[] = $row_rs_tu01['dates'];
     $data1[] = number_format($row_rs_tu01['inflows'],3);
     $data2[] = number_format($row_rs_tu01['releases'],3);
     $data3[] = number_format($row_rs_tu01['spillway'],3);
     $data4[] = number_format($row_rs_tu01['tot_release'],3);        
 } while ($row_rs_tu01 = mysql_fetch_assoc($rs_tu01));

 $data = '<data>';
     $data .= "<series type = 'Area' name ='Inflow' color ='#00FF00'>";
 for ($i = 0;$i<$totalRows_rs_tu01;$i++) {
     $data .= '<point name="'.$data0[$i].'" y="'.$data1[$i].'" />';
  }
  $data .= '</series>'; 
     $data .= "<series type = 'Area' name ='Release+Spillway' color ='#FF00FF'>";
   for ($i = 0;$i<$totalRows_rs_tu01;$i++)
    {
     $data .= '<point name="'.$data0[$i].'" y="'.$data4[$i].'" />';
   }
  $data .= '</series>';
       $data .= "<series type = 'Area' name ='Release' color ='#FFFF00'>";
  for ($i = 0;$i<$totalRows_rs_tu01;$i++)
   {
     $data .= '<point name="'.$data0[$i].'" y="'.$data2[$i].'" />';
  }
 $data .= '</series>'; 
   $data .= "<series type = 'Area' name ='Spillway' color ='#FF0000'>";
  for ($i = 0;$i<$totalRows_rs_tu01;$i++) {
     $data .= '<point name="'.$data0[$i].'" y="'.$data3[$i].'" />';
  }
  $data .= '</series>'; 
 
 $data .= '</data>';
?>
<anychart>
<settings>
  <animation enabled="True"/>
</settings>
<charts>
  <chart type="CategorizedVertical">
  <chart_settings>
            <title>
              <text>ปริมาณน้ำไหลเ้ข้า-ระบายผ่านเครื่องและผ่าน Spillway รายวันเขื่อนสิริกิติ์ </text>
            </title>
            <scale minimum="1"/>
            <legend enabled="true" ignore_auto_item="false" padding="5" align="Spread" position="top">
                    <template/>
                    <columns_separator enabled="false"/>
                    <background>
                      <inside_margin right="10" left="10"/>
                    </background>
                    <title enabled ="false" />
            </legend>
            <axes>
                    <x_axis tickmarks_placement="Center">
                            <labels display_mode="Rotated" rotation="90" align="inside" allow_overlap="true"/>
                      <zoom enabled="true" start="400" end="500"/>
                      <line enabled="true"/>
                       <title>
                         <text>date</text>
                       </title>
                    </x_axis>
                    <y_axis>
                             <scale minimum="0"/>
                            <labels>
                                    <format>{%Value}{numDecimals:0}</format>
                            </labels>
                            <title>
                                    <text>mcm.</text>
                            </title>
                    </y_axis>
            </axes>
</chart_settings>
<data_plot_settings default_series_type="SplineArea">
<area_series>
        <marker_settings enabled="True">
                <marker type="Circle" size="4"/>
        </marker_settings>       
        <tooltip_settings enabled="true">
            <format>
                    <![CDATA[{%SeriesName}:{%Name}{enabled:false}={%Value}{numDecimals:2}mcm.]]>
            </format>
            <background>
                    <corners all="3" type="Rounded"/>
                    <effects enabled="false"/>
                    <border type="Solid" opacity="0.2" color="#FF0000"/>
            </background>
        </tooltip_settings>
        <area_style>
        <line enabled="true" color="DarkColor(%Color)"/>
         <fill opacity="0.3" color="%Color"/>
         <states>
          <hover color="white"/>
          </states>
          </area_style>
        </area_series>
</data_plot_settings>
<?php
// Output data section
echo $data;
?>
  </chart>
 </charts>
</anychart>
<?php
mysql_free_result($rs_tu01);
?>

กำหนดวันที่ภาษาไทยให้กับ PHP วันที่แบบไทย

$thai_day_arr=array("อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุกร์","เสาร์");
$thai_month_arr=array( "0"=>"", "1"=>"มกราคม", "2"=>"กุมภาพันธ์", "3"=>"มีนาคม", "4"=>"เมษายน", "5"=>"พฤษภาคม", "6"=>"มิถุนายน", "7"=>"กรกฎาคม", "8"=>"สิงหาคม", "9"=>"กันยายน", "10"=>"ตุลาคม", "11"=>"พฤศจิกายน", "12"=>"ธันวาคม" );
function thai_date($time){
 global $thai_day_arr,$thai_month_arr;
 $thai_date_return="วัน".$thai_day_arr[date("w",$time)]; $thai_date_return.= "ที่ ".date("j",$time); $thai_date_return.=" เดือน".$thai_month_arr[date("n",$time)];
$thai_date_return.= " พ.ศ.".(date("Yํ",$time)+543);
 return $thai_date_return;
}
$eng=1224562026; กรณีเป็น timestamp $eng_date=time();
$ldate = date('Y-n-d',strtotime("-1 day")); // กำหนดให้แสดงเมื่อวาน date('Y-n-d',strtotime("-1 day") วันพรุ่งนี้ =date('Y-n-d',strtotime("+1 day") วันปัจจุบัน =date('Y-n-d') เท่านั้น
$eng_date= strtotime($ldate);  //แปลงวันให้เป็นรูปแบบ Timestamp
echo thai_date($eng_date) //แสดงผล

 // ถ้ามีการเก็บวันที่และเวลาในรูปแบบ timestamp // สามารถนำมาใช้งานในฟังก์ชันได้ดังนี้
//  แสดงวันที่ปัจจุบัน echo thai_date($eng_date);
//การประยุกต์ใช้งาน
 // ถ้ามีการเก็บวันที่และเวลาในรูปแบบ date // คือ 2008-10-31 ต้องเปลี่ยนเป็น timestamp
// ด้วยคำส่ง strtotime("2008-10-31");
// แสดงวันที่ 31 เดือน ตุลาคม ปี 2008 แบบภาษาไทย $eng_date=strtotime("2008-10-31");  echo thai_date($eng_date);


เพิ่มเติม
Find Yesterday’s date
<?php

echo "yesterday was ".date("Y-m-d", strtotime("-1 days"));

?>
Output
yesterday was 2010-04-10

Find Date one week ago
<?php

echo "1 week form today was ".date("Y-m-d", strtotime("-1 weeks"));

?>
Output
1 week form today was 2010-04-04

Find Date one month after
<?php

echo "1 month from today will be ".date("Y-m-d", strtotime("+1 months"));

?>
Output
1 month form today will be 2010-05-11



วันเสาร์ที่ 13 สิงหาคม พ.ศ. 2554

วัน-เวลาใน php เพิ่ม-ลดวัน


# แสดงเดือนปัจจุบันดังนี้ month(now()); year(now());, day
#SELECT DATE_FORMAT(NOW(), '%M %D') returns "December 27th"
-%m =01-12
-%Y = 2011
-%y = 11



SpecifierDescription
%aAbbreviated weekday name (Sun..Sat)
%bAbbreviated month name (Jan..Dec)
%cMonth, numeric (0..12)
%DDay of the month with English suffix (0th1st2nd3rd, …)
%dDay of the month, numeric (00..31)
%eDay of the month, numeric (0..31)
%fMicroseconds (000000..999999)
%HHour (00..23)
%hHour (01..12)
%IHour (01..12)
%iMinutes, numeric (00..59)
%jDay of year (001..366)
%kHour (0..23)
%lHour (1..12)
%MMonth name (January..December)
%mMonth, numeric (00..12)
%pAM or PM
%rTime, 12-hour (hh:mm:ss followed by AM or PM)
%SSeconds (00..59)
%sSeconds (00..59)
%TTime, 24-hour (hh:mm:ss)
%UWeek (00..53), where Sunday is the first day of the week
%uWeek (00..53), where Monday is the first day of the week
%VWeek (01..53), where Sunday is the first day of the week; used with %X
%vWeek (01..53), where Monday is the first day of the week; used with %x
%WWeekday name (Sunday..Saturday)
%wDay of the week (0=Sunday..6=Saturday)
%XYear for the week where Sunday is the first day of the week, numeric, four digits; used with %V
%xYear for the week, where Monday is the first day of the week, numeric, four digits; used with %v
%YYear, numeric, four digits
%yYear, numeric (two digits)
%%A literal “%” character
%xx, for any “x” not listed above

#เเพิ่ม ลดเดือนลง 1 เดือน
SELECT * FROM tickets
WHERE MONTH(created) = MONTH(DATE_ADD(now(), INTERVAL -1 MONTH))

#ถ้าต้องการเพิ่มก็ให้เป้น MONTH(DATE_ADD(now(), INTERVAL 1 MONTH))


SQL MYSQL DATE_ADD() 
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดยทำการ บอก หรือ ลบ วันที่ ที่ต้องการ

Database : MySQL

Syntax


DATE_ADD(date,INTERVAL expr unit)

unit ValueExpected expr Format
MICROSECONDMICROSECONDS
SECONDSECONDS
MINUTEMINUTES
HOURHOURS
DAYDAYS
WEEKWEEKS
MONTHMONTHS
QUARTERQUARTERS
YEARYEARS
SECOND_MICROSECOND'SECONDS.MICROSECONDS'
MINUTE_MICROSECOND'MINUTES:SECONDS.MICROSECONDS'
MINUTE_SECOND'MINUTES:SECONDS'
HOUR_MICROSECOND'HOURS:MINUTES:SECONDS.MICROSECONDS'
HOUR_SECOND'HOURS:MINUTES:SECONDS'
HOUR_MINUTE'HOURS:MINUTES'
DAY_MICROSECOND'DAYS HOURS:MINUTES:SECONDS.MICROSECONDS'
DAY_SECOND'DAYS HOURS:MINUTES:SECONDS'
DAY_MINUTE'DAYS HOURS:MINUTES'
DAY_HOUR'DAYS HOURS'
YEAR_MONTH'YEARS-MONTHS'


Table : member
CustomerID
Name
Email
ReisgerDate
C001
Win Weerachaiwin.weerachai@thaicreate.com
2010-11-27 18:34:00


Sample1 เลือกข้อมูล Column ชื่อ RegisterDate โดยทำบวกวันที่เข้าไปอีก 1 เดือน

SELECT Name, DATE_ADD(OrderDate,INTERVAL 30 DAY) As RegisterDate FROM customer

สามารถใส่ค่าเป็น บวก หรือ ลบ ได้

Output

Name
Register Date
Win Weerachai
2010-12-27 18:34:00








4. 12. DATE_SUB
14. 12. 1. DATE_SUB(date,INTERVAL expr unit)
14. 12. 2. DATE_SUB(curdate(), INTERVAL 1 MICROSECOND);
14. 12. 3. DATE_SUB(curdate(), INTERVAL 1 MINUTE);
14. 12. 4. DATE_SUB(curdate(), INTERVAL 1 HOUR);
14. 12. 5. DATE_SUB(curdate(), INTERVAL 1 DAY);
14. 12. 6. DATE_SUB(curdate(), INTERVAL 1 WEEK);
14. 12. 7. DATE_SUB(curdate(), INTERVAL 1 MONTH);
14. 12. 8. DATE_SUB(curdate(), INTERVAL 1 QUARTER);
14. 12. 9. DATE_SUB(curdate(), INTERVAL 1 YEAR);
14. 12. 10. DATE_SUB(curdate(), INTERVAL 1.1 SECOND_MICROSECOND);
14. 12. 11. DATE_SUB(curdate(), INTERVAL 1 SECOND);
14. 12. 12. DATE_SUB(curdate(), INTERVAL 1.1 SECOND);
14. 12. 13. DATE_SUB(curdate(), INTERVAL 1.1 MINUTE_MICROSECOND);
14. 12. 14. DATE_SUB(curdate(), INTERVAL 1.1 MINUTE_SECOND);
14. 12. 15. select DATE_SUB(curdate(), INTERVAL 1.1 HOUR_MICROSECOND);
14. 12. 16. select DATE_SUB(curdate(), INTERVAL 1.1 HOUR_SECOND);
14. 12. 17. select DATE_SUB(curdate(), INTERVAL '1:1:1' HOUR_SECOND);
14. 12. 18. select DATE_SUB(curdate(), INTERVAL 1.1 HOUR_MINUTE); (with dot)
14. 12. 19. select DATE_SUB(curdate(), INTERVAL '1:1' HOUR_MINUTE);
14. 12. 20. select DATE_SUB(curdate(), INTERVAL 1.1 DAY_MICROSECOND);
14. 12. 21. select DATE_SUB(curdate(), INTERVAL '1 1:1:1' DAY_SECOND);
14. 12. 22. select DATE_SUB(curdate(), INTERVAL '1 1:1' DAY_MINUTE);
14. 12. 23. select DATE_SUB(curdate(), INTERVAL '1 1' DAY_HOUR);
14. 12. 24. select DATE_SUB(curdate(), INTERVAL 1.1 SECOND_MICROSECOND);
14. 12. 25. select DATE_SUB(curdate(), INTERVAL '1-1' YEAR_MONTH);
14. 12. 26. select DATE_SUB(curdate(), INTERVAL '1.1' YEAR_MONTH); (with dot)
14. 12. 27. Selects all rows with a start_date value from within the last 30 days
14. 12. 28. Getting a date 6 months in the past
14. 12. 29. Using DATE_SUB function to substract 55 years from current date