Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > วน for วันที่ แล้ว select ข้อมูล ตามเดือน ออกมา เร่ิมจาก ปี 2549 -ปีปัจจุบัน



 

วน for วันที่ แล้ว select ข้อมูล ตามเดือน ออกมา เร่ิมจาก ปี 2549 -ปีปัจจุบัน

 



Topic : 130780



โพสกระทู้ ( 681 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter



วน for วันที่ แล้ว select ข้อมูล ตามเดือน ออกมา เร่ิมจาก ปี 2549 -ปีปัจจุบัน
แต่มันติดอยู่ที่เดือน ก.พ มี 28 หรือ 29 แล้วแต่ปี เราจะเขียน For ออกมายังไง ต้องเชคอะไรบ้างคะ

ตอนนี้มัน Error
Warning: odbc_exec(): SQL error: [Microsoft][SQL Server Native Client 11.0][SQL Server]The conversion of a varchar data type to a datetime data type resulted in an out-of-range value., SQL state 22008 in SQLExecDirect in D:\Apache24\htdocs\Bootstrap\ThaiStatistics\detail_opd.php on line 41

Code (PHP)
<?php    
    $nowYear = date('Y');
    $startYear = 2549-543;
    
    for($year=$nowYear;$year>=$startYear;$year--) 
    {    
        echo  "<tr>";
        echo  "<td>".($year+543)."</td>";
        
        for($month=1;$month<=12;$month++)
        {
            for($day=1;$day<=31;$day++)
            {
                
            $strSQL= "SELECT COUNT (VN) as total FROM DN_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '".$nowYear."-".$month."-".$day."' AND '".$nowYear."-".$month."-".$day."' AND Cxl='0'";
            
            $objExec = odbc_exec($conn,$strSQL) or die ("Error Execute [".$strSQL."]");
            while($objResult = odbc_fetch_object($objExec))
            {
                echo "<td>$objResult->total</td>";  
            }
            //$day++;
                //echo $day."<br>";
            }
        }   
        $nowYear--;
        echo "<tr>";                                       
    }
    ?>




Tag : PHP, Ms SQL Server 2016, Apache







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2018-04-06 09:48:33 By : nottpoo View : 856 Reply : 3
 

 

No. 1



โพสกระทู้ ( 5,149 )
บทความ ( 26 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ให้เชคว่า เดือนนั้นๆ ของปีนั้น ๆ มีกี่วันก่อนครับ

$number = cal_days_in_month(CAL_GREGORIAN, 2, 2018);






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-04-06 11:05:07 By : deawx
 


 

No. 2



โพสกระทู้ ( 681 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

พอเชคได้แล้วยังไงต่อคะ เราไม่ได้เชคแค่ปี 2018 นะคะ เชคตั้งแต่ 2006-2018

Code (PHP)
<?php
$number = cal_days_in_month(CAL_GREGORIAN, 8, 2003); // 31
echo "There were {$number} days in August 2003";
?>
[/php

Code (PHP)
[php]<?php
/*
* days_in_month($month, $year)
* Returns the number of days in a given month and year, taking into account leap years.
*
* $month: numeric month (integers 1-12)
* $year: numeric year (any integer)
*
* Prec: $month is an integer between 1 and 12, inclusive, and $year is an integer.
* Post: none
*/
// corrected by ben at sparkyb dot net
function days_in_month($month, $year)
{
// calculate number of days in a month
return $month == 2 ? ($year % 4 ? 28 : ($year % 100 ? 29 : ($year % 400 ? 28 : 29))) : (($month - 1) % 7 % 2 ? 30 : 31);
}
?> 



ประวัติการแก้ไข
2018-04-06 11:20:08
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-04-06 11:17:46 By : nottpoo
 

 

No. 3



โพสกระทู้ ( 681 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

ล่าสุด มันออกมาแบบนี้คะ ทำไมมันออกม่แค่เดือน คี่

echo
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-1' AND '2018-1-1' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-2' AND '2018-1-2' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-3' AND '2018-1-3' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-4' AND '2018-1-4' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-5' AND '2018-1-5' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-6' AND '2018-1-6' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-7' AND '2018-1-7' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-8' AND '2018-1-8' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-9' AND '2018-1-9' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-10' AND '2018-1-10' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-11' AND '2018-1-11' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-12' AND '2018-1-12' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-13' AND '2018-1-13' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-14' AND '2018-1-14' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-15' AND '2018-1-15' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-16' AND '2018-1-16' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-17' AND '2018-1-17' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-18' AND '2018-1-18' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-19' AND '2018-1-19' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-20' AND '2018-1-20' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-21' AND '2018-1-21' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-22' AND '2018-1-22' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-23' AND '2018-1-23' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-24' AND '2018-1-24' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-25' AND '2018-1-25' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-26' AND '2018-1-26' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-27' AND '2018-1-27' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-28' AND '2018-1-28' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-29' AND '2018-1-29' AND Cxl='0'
SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '2018-1-30' AND '2018-1-30' AND Cxl='0'


Code (PHP)
<?php
    function days_in_month($month, $year)
    {
        // calculate number of days in a month
        return $month == 2 ? ($year % 4 ? 28 : ($year % 100 ? 29 : ($year % 400 ? 28 : 29))) : (($month - 1) % 7 % 2 ? 30 : 31);
    }   
   
    $nowYear = date('Y');
    $startYear = 2549-543;
        
    for($year=$nowYear;$year>=$startYear;$year--) 
    {    
        echo  "<tr>";
        echo  "<td><b>".($year+543)."</b></td>";
        
        for($month=1;$month<=12;$month++)
        {
            $dmonth =days_in_month(CAL_GREGORIAN, $month, $year); 
            echo "There were" .$dmonth. "days in month ".$month."-".$year."<br>";
                
            for($day=1;$day<=$dmonth;$day++)
            {
                
            $strSQL= "SELECT COUNT (VN) as total FROM DNHOSPITAL_TEST.dbo.HNOPD_MASTER WHERE VisitDate BETWEEN '".$nowYear."-".$month."-".$day."' AND '".$nowYear."-".$month."-".$day."' AND Cxl='0'";
                
            $objExec = odbc_exec($conn,$strSQL) or die ("Error Execute [".$strSQL."]");
                
            //echo $strSQL."<br>";
                
            while($objResult = odbc_fetch_object($objExec))
            {
                //echo "<td>  $objResult->total<br>&nbsp;</td>";
            }
              $day++;
            }
            $month++;
        }   
        $nowYear--;
        echo "</tr>";
    }
    ?>


อยากได้ Query แบบนี้คะ
Code (PHP)
SELECT COUNT (VN) FROM [DNHOSPITAL_TEST].[dbo].[HNOPD_MASTER] WHERE [VisitDate] BETWEEN '2018-03-01' AND '2018-03-31';



ประวัติการแก้ไข
2018-04-06 13:19:22
2018-04-06 13:46:01
2018-04-06 13:47:07
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-04-06 13:18:41 By : nottpoo
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : วน for วันที่ แล้ว select ข้อมูล ตามเดือน ออกมา เร่ิมจาก ปี 2549 -ปีปัจจุบัน
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่