วันจันทร์ที่ 17 กรกฎาคม พ.ศ. 2560

Dreamweaver ตั้งค่า Redirect

กรณี InsertGOTO โดย Dreamweaver


..... $insertGoTo = "confirm_add02.php?dates1=".$_POST[dates]."&ka1=".$_POST[ka]."&floor1=".$_POST[floor]; if (isset($_SERVER['QUERY_STRING'])) { $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; $insertGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $insertGoTo)); }
  $insertGoTo = "view.php?pers=admins"; //กำหนด Link และค่าที่จะส่งไปด้วย
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; //ส่งค่ามาให้ Dreamweaver
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}
----------------------------------------------------------------------------------------------------------------
กำหนดแบบมีเงื่อนไข
if ($_POST['floor']=='Control_Room'){
$insertGoTo = 'view_logbook_control.php';
}else if ($_POST['floor']=='Main_Floor'){
$insertGoTo= 'view_logbook_main.php';
   }else if ($_POST['floor']=='Generator_Floor'){
$insertGoTo = 'view_logbook_gen.php';
}else{
$insertGoTo= 'view_logbook_tur.php';
}
   if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}

ว่าด้วยการ Redirect

วิธีการ Redirect หน้าเว็บไซต์ ด้วย PHP Code 

ทำการ PHP Redirect - Header Location
<?
 header( "location: http://www.youurl.com" );
 exit(0);
?>

** location ต้องตามติดด้วย ( : ) เสมอ
 
ทำการ PHP Redirect - Header Refresh แบบตั้งเวลา
case 1
นำเอา HTML META มาแทรก PHP

echo "<html><meta http-equiv=\"refresh\" content=\"6;URL='http://youurl.com/'\">
<br><br><br><div id='loading'><p><img src='loader.gif'> Please wait 6 seconds...</p>
</div></html>";
case 2
กรณีนี้ถ้าไม่ทำงานให้ใช้ โดยนำวางบรรทัดแรกของ PHP Code
@ob_flush(); //flush the output buffer
flush(); //flush anything else  
 sleep(10);//รอ 10 วินาทีก่อนจะ  Redirect
   header("Location: http://www.youurl.com");
case 3
 header("refresh: 2; url='http://www.youurl.com'");
exit(0);
** refresh ต้องตามติดด้วย ( : ) เสมอ
** ค่าตัวเลข 2 หมายถึง จำนวนวินาที

** สามารถระบุปลายทางด้วย ที่อยู่เว็บไซต์ ( URL ) หรือ Path / Folder ที่ต้องการ
** การระบุ exit(0); หมายถึง ให้ทำงานสิ้นสุดแค่คำสั่ง header เท่านั้น
** การใช้ function header ใน php ต้องไม่มีการสั่ง echo , print เกิดขึ้นก่อน ฟังก์ชั่น header

วิธีการ Redirect หน้าเว็บไซต์ ด้วย HTML, Button

<meta http-equiv="refresh" content="6;URL='http://youurl.com'">

วิธีการ Redirect หน้าเว็บไซต์ ด้วย Input Button  เปิดหน้า Popup ขึ้นมา

<input type="button" name="button" id="button" value="Update Data" 
onClick="window.open('http://www.youurl.com','pwin',
'location=no,status=no,scrollbars=no,resizeable=yes,toolbar=no')" />

วิธีการ Redirect หน้าเว็บไซต์ ด้วย Input Button // Style สีพื้นหลังปุ่ม / สีต่อมาคือสีของตัวหนังสือของปุ่ม

<input type="button" name="button1" id="button1" value="Send" 
onClick="location.href='manual.php'" style="background-color:#0000FF;
color:#FFFFFF" /> 

ตัวอย่าง PHP วิธีการ Redirect หน้าเว็บไซต์  

<?php
header('Refresh: 5;URL=http://www.google.com/'); // refresh header
echo "<html><head>";
// meta refresh
echo "<meta http-equiv=\"refresh\" content=\"5;URL=http://www.google.com/\" />"; 
echo "</head><body><br><br><br><div id='loading'><p><img src='loader.gif'>
Please wait 6 seconds...</p></div></body></html>";
?>
<script type="text/javascript">
// javascript refresh
window.setTimeout(function(){location.href="http://www.google.com";},5000);
</script>

วันอาทิตย์ที่ 25 มิถุนายน พ.ศ. 2560

เขียน SQL ใน MYSQL ให้แยกวัน-เดือน-ปี แบบไทย


เขียน SQL ใน MYSQL ให้แยกวัน-เดือน-ปี แบบไทย
 
r_date มีค่าเป็น 2017-06-01


SQL ดังนี้

select `plantreal24`.`r_date` AS `r_date`,
       dayofmonth(`plantreal24`.`r_date`) AS `thaiday`,
       (case
  when (month (`plantreal24`.`r_date`) = 1) then _utf8 'ม.ค.'
  when (month (`plantreal24`.`r_date`) = 2) then _utf8 'ก.พ.'
  when (month (`plantreal24`.`r_date`) = 3) then _utf8 'มี.ค.'
  when (month (`plantreal24`.`r_date`) = 4) then _utf8 'เม.ย.'
  when (month (`plantreal24`.`r_date`) = 5) then _utf8 'พ.ค.'
  when (month (`plantreal24`.`r_date`) = 6) then _utf8 'มิ.ย.'
  when (month (`plantreal24`.`r_date`) = 7) then _utf8 'ก.ค.'
  when (month (`plantreal24`.`r_date`) = 8) then _utf8 'ส.ค.'
  when (month (`plantreal24`.`r_date`) = 9) then _utf8 'ก.ค.'
  when (month (`plantreal24`.`r_date`) = 10) then _utf8 'ต.ค.'
  when (month (`plantreal24`.`r_date`) = 11) then _utf8 'พ.ย.'
  when (month (`plantreal24`.`r_date`) = 12) then _utf8 'ธ.ค.'
end) AS `thaimonth`,
       (year (`plantreal24`.`r_date`) + 543) AS `thaiyear`,
       `plantreal24`.`fore24` AS `fore24`,
       `plantreal24`.`no` AS `no`
from `plantreal24`
order by `plantreal24`.`no`

การใช้ RIGHT JOIN เพื่อดึงข้อมูลออกในแต่ละปี



ตัวอย่างข้อมูลใน TABLE



เขียน SQL  RIGHT JOIN ดังนี้

SELECT TB2.thaimonth, TB2.thaiyear, TB2.sum0 as Datas, TB1.thaiyear, TB1.sum1 as Datas2
FROM
(SELECT 
  sk24_all_month.r_date,
  sk24_all_month.thaimonth,
  sk24_all_month.thaiyear,
  sk24_all_month.sum_inflow24 as sum1
FROM
  sk24_all_month
WHERE
  sk24_all_month.thaiyear = 2560 ) as TB1
RIGHT JOIN(
(SELECT 
  sk24_all_month.r_date,
  sk24_all_month.thaimonth,
  sk24_all_month.thaiyear,
  sk24_all_month.sum_inflow24 as sum0
FROM
  sk24_all_month
WHERE
  sk24_all_month.thaiyear = 2559 ) as TB2
)ON(
TB2.thaimonth = TB1.thaimonth
)
  







//----------------------Sample---------------------------------------

$SQL1 = "SELECT l_curve.d_year, now_for.fore24 as now_year, l1_for.l1_fore24 as l1_year, l2_for.l2_fore24 as l2_year, l3_for.l3_fore24 as l3_year,
lmax_fore24.lmax_fore24 as max18_year, lmin_fore24.lmin_fore24 as min35_year, l_curve.uppers, l_curve.lowers, n_fore.n_fore, n_fore.r_date as n_date
FROM
(
SELECT 
all_sk_forebay5y.r_date,
all_sk_forebay5y.fore24
FROM
all_sk_forebay5y
WHERE
   YEAR(all_sk_forebay5y.r_date) = YEAR(CURDATE())) as now_for
RIGHT JOIN(
(SELECT
 all_sk_forebay5y.r_date,
 all_sk_forebay5y.fore24 as l1_fore24
FROM
 all_sk_forebay5y
WHERE
YEAR(all_sk_forebay5y.r_date) = YEAR(CURDATE())-1) as l1_for
)ON(
DayOfYear(now_for.r_date)= DayOfYear(l1_for.r_date)
)
RIGHT JOIN(
(SELECT
 all_sk_forebay5y.r_date,
 all_sk_forebay5y.fore24 as l2_fore24
FROM
 all_sk_forebay5y
WHERE
YEAR(all_sk_forebay5y.r_date) = YEAR(CURDATE()) - 2) as l2_for
)ON(
DayOfYear(l1_for.r_date)= DayOfYear(l2_for.r_date)
)
RIGHT JOIN(
(SELECT
 all_sk_forebay5y.r_date,
 all_sk_forebay5y.fore24 as l3_fore24
FROM
 all_sk_forebay5y
WHERE
YEAR(all_sk_forebay5y.r_date) = YEAR(CURDATE()) - 3) as l3_for
)ON(
DayOfYear(l1_for.r_date)= DayOfYear(l3_for.r_date)
)
RIGHT JOIN(
(SELECT
 all_sk_forebay5y.r_date,
 all_sk_forebay5y.fore24 as lmax_fore24
FROM
 all_sk_forebay5y
WHERE
YEAR(all_sk_forebay5y.r_date) = 1975) as lmax_fore24
)ON(
DayOfYear(l1_for.r_date)= DayOfYear(lmax_fore24.r_date)
)
RIGHT JOIN(
(SELECT
 all_sk_forebay5y.r_date,
 all_sk_forebay5y.fore24 as lmin_fore24
FROM
 all_sk_forebay5y
WHERE
YEAR(all_sk_forebay5y.r_date) = 1992) as lmin_fore24
)ON(
DayOfYear(l1_for.r_date)= DayOfYear(lmin_fore24.r_date)
)
JOIN(
SELECT ruledata_2555.d_year,
        ruledata_2555.upper as uppers,
        ruledata_2555.lower as lowers
FROM ruledata_2555
    WHERE ruledata_2555.dam = 'SK' ) as l_curve
    ON (l_curve.d_year =  DayOfYear(l1_for.r_date)) 
JOIN(
SELECT 
  all_sk_forebay5y.r_date,
  all_sk_forebay5y.fore24 as n_fore
FROM
  all_sk_forebay5y
ORDER BY
  all_sk_forebay5y.r_date DESC
LIMIT 1) as n_fore
ORDER BY l3_for.r_date ASC";
mysql_connect("localhost", "root", "adminxxx");
mysql_select_db("xxx");
$result1 = mysql_query($SQL1);
$a =0;
while ($row1= mysql_fetch_row($result1)) { //ดึงข้อมูลไปใช้งาน
$mydate[]  = $row1[0];
if(!$row1[1]==null){$fore24[] = $row1[1];}
//$fore24[]  = if($row1[1] == null){$row1[1] =0} else {$row1[1] =$row1[1]};
$l1_fore24[]  = $row1[2];
$l2_fore24[]  = $row1[3];
$l3_fore24[]  = $row1[4];
$max18_year[]  = $row1[5];
$min35_year[]  = $row1[6];
$uppers[]  = $row1[7];
$lowers[]  = $row1[8];
$m18 = max($max18_year); //หาข้อมูลใน Array ที่มีค่ามากที่สุด
$m35 = min($min35_year);//หาข้อมูลใน Array ที่มีค่าน้อยที่สุด
$n_fore = $row1[9];
$n_date = $row1[10];
}

การหาผลรวม Total ของข้อมูลใน Array ที่รับมาจาก Database


$SQL1 = "Select * FROM xxx";
mysql_connect("localhost", "root", "admin");
mysql_select_db("xxx");
$result1 = mysql_query($SQL1);
$a =0;
while ($row1= mysql_fetch_row($result1)) {
$mydate[]  = $row1[0];
if(!$row1[1]==null){$fore24[] = $row1[1];} //เช็ค Record ว่างหรือไม่
$l1_fore24[]  = $row1[2];
$l2_fore24[]  = $row1[3];
$l3_fore24[]  = $row1[4];
$l4_fore24[]  = $row1[5];
}


   $myc = count($l1_fore24);  // หาผลรวมของข้อมูลว่ามีจำนวนกี่ Record

   for($m=0;$m<=$myc;$m++)  
    {
$fore24_0 = ($fore24[$m])+$fore24_0;   //หาผลรวมของ Column แรก
$fore24_1 = ($l1_fore24[$m])+$fore24_1;
$fore24_2 = ($l2_fore24[$m])+$fore24_2;
$fore24_3 = ($l3_fore24[$m])+$fore24_3;
$fore24_4 = ($l4_fore24[$m])+$fore24_4;
}

วัน เวลา ใน PHP

กำหนดให้แสดงปีแบบไทย ใน PHP
$y_now = ROUND(date("y", mktime(date("Y"))));
$nows = $y_now + 43;  //แสดง 60
$nows1 = $y_now + 42; //แสดง 59
$nows2 = $y_now + 41; //แสดง 58
$nows3 = $y_now + 40;
$nows4 = $y_now + 39;
$nows5 = $y_now + 38;


เขียน Function แสดงวันเดือนปี แบบไทย

$thai_month_short=array(  
    "0"=>"",  
    "1"=>"ม.ค.",  
    "2"=>"ก.พ.",  
    "3"=>"มี.ค.",  
    "4"=>"เม.ย.",  
    "5"=>"พ.ค.",  
    "6"=>"มิ.ย.",  
    "7"=>"ก.ค.",  
    "8"=>"ส.ค.",  
    "9"=>"ก.ย.",  
    "10"=>"ต.ค.",  
    "11"=>"พ.ย.",  
    "12"=>"ธ.ค."                  
);  
$thai_month=array(
    "0"=>"",
    "1"=>"มกราคม",
    "2"=>"กุมภาพันธ์",
    "3"=>"มีนาคม",
    "4"=>"เมษายน",
    "5"=>"พฤษภาคม",
    "6"=>"มิถุนายน",
    "7"=>"กรกฎาคม",
    "8"=>"สิงหาคม",
    "9"=>"กันยายน",
    "10"=>"ตุลาคม",
    "11"=>"พฤศจิกายน",
    "12"=>"ธันวาคม"                
);
function thai_date($time){   //แสดง 25 มิ.ย. 2560
    global $thai_month_short;  
    $thai_date_return = date("j",$time);   // - 1  เพื่อให้แสดงข้อมูลเมื่อวาน
    $thai_date_return.=" ".$thai_month_short[date("n",$time)];  
    $thai_date_return.= " ".(date("Y",$time)+543);  
    return $thai_date_return;  
}

function thai_fdate($time){    //แสดงแบบ 25 มิถุนายน 2560
    global $thai_month;  
    $thai_date_return = date("j",$time);    // - 1  เพื่อให้แสดงข้อมูลเมื่อวาน
    $thai_date_return.=" ".$thai_month[date("n",$time)];  
    $thai_date_return.= " ".(date("Y",$time)+543);  
    return $thai_date_return;  
}

$mydt = time();

นำไปใช้งาน

echo thai_date($mydt)  //แสดง 25 มิ.ย. 2560

echo thai_fdate($mydt) //แสดงแบบ 25 มิถุนายน 2560

วันศุกร์ที่ 2 มิถุนายน พ.ศ. 2560

สร้างข้อมูลสำหรับสร้างกราฟรายปี Database for Chart


<DATABASE>-----------------------------------------------------------------------------------------------
  ตารางข้อมูลแสดงข้อมูลทุกปี



<CODE MYSQL >--------------------------------------------------------------------------------------------
 ต้องการแสดงผลข้อมูลของแต่ล่ะปี เพื่อนำไป Plot Graph โดยจะต้องแยกออกเป็นปี ๆ ที่ต้องการ

SELECT now_for.r_date, now_for.fore24 as now_year, l1_for.l1_fore24 as l1_year, l2_for.l2_fore24 as l2_year, l3_for.l3_fore24 as l3_year,
lmax_fore24.lmax_fore24 as max18_year, lmin_fore24.lmin_fore24 as min35_year, l_curve.uppers, l_curve.lowers
FROM
(
  SELECT
   sk24_forebay5y.r_date,
   sk24_forebay5y.fore24
  FROM
   sk24_forebay5y
  WHERE
      YEAR(sk24_forebay5y.r_date) = YEAR(CURDATE())) as now_for
RIGHT JOIN(
  (SELECT
    sk24_forebay5y.r_date,
    sk24_forebay5y.fore24 as l1_fore24
  FROM
    sk24_forebay5y
  WHERE
   YEAR(sk24_forebay5y.r_date) = YEAR(CURDATE())-1) as l1_for
 )ON(
  DayOfYear(now_for.r_date)= DayOfYear(l1_for.r_date)
 )
RIGHT JOIN(
  (SELECT
    sk24_forebay5y.r_date,
    sk24_forebay5y.fore24 as l2_fore24
  FROM
    sk24_forebay5y
  WHERE
   YEAR(sk24_forebay5y.r_date) = YEAR(CURDATE()) - 2) as l2_for
 )ON(
  DayOfYear(l1_for.r_date)= DayOfYear(l2_for.r_date)
 )
RIGHT JOIN(
  (SELECT
    sk24_forebay5y.r_date,
    sk24_forebay5y.fore24 as l3_fore24
  FROM
    sk24_forebay5y
  WHERE
   YEAR(sk24_forebay5y.r_date) = YEAR(CURDATE()) - 3) as l3_for
 )ON(
  DayOfYear(l2_for.r_date)= DayOfYear(l3_for.r_date)
 )
RIGHT JOIN(
  (SELECT
    sk24_forebay5y.r_date,
    sk24_forebay5y.fore24 as lmax_fore24
  FROM
    sk24_forebay5y
  WHERE
   YEAR(sk24_forebay5y.r_date) = 1975) as lmax_fore24
 )ON(
  DayOfYear(l3_for.r_date)= DayOfYear(lmax_fore24.r_date)
 )
RIGHT JOIN(
  (SELECT
    sk24_forebay5y.r_date,
    sk24_forebay5y.fore24 as lmin_fore24
  FROM
    sk24_forebay5y
  WHERE
   YEAR(sk24_forebay5y.r_date) = 1992) as lmin_fore24
 )ON(
  DayOfYear(l3_for.r_date)= DayOfYear(lmin_fore24.r_date)
 )
JOIN(
 SELECT  rulecurve.d_year,
         rulecurve.upper as uppers,
         rulecurve.lower as lowers
 FROM rulecurve ) as l_curve
    ON (l_curve.d_year =  DayOfYear(l3_for.r_date))

ORDER BY
  l3_for.r_date ASC



<RESULT MYSQL>---------------------------------------------------------------------------------------