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 > คือผมทำออกมาแล้วมันลูปตามเดืิอนแล้วแต่ ดันติดวันของอีกเดือนมาด้วย ผมพลาดตรงไหนพี่ๆช่วยดูให้หน่อยครับผม



 

คือผมทำออกมาแล้วมันลูปตามเดืิอนแล้วแต่ ดันติดวันของอีกเดือนมาด้วย ผมพลาดตรงไหนพี่ๆช่วยดูให้หน่อยครับผม

 



Topic : 124775



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



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




พี่ ๆ ช่วยดูทีครับผม บางทีก็งงๆ ครับคิดไม่ออกไม่รู้จะทำยังไงทั้งๆที่นังอ่านมาก็เยอะ // สงสัยผมจะไม่รู้เรื่องเอง ช่วยแนะนำทีครับ

Code (PHP)
 <?php   while  (strtotime($stdate) <= strtotime($endate))  { 
            $where=' where orders_date>="'.$stdate.'"   ';
            $query = sprintf('select * from orders %s ',$where);
            $result = mysqli_query($con,$query);
            if (mysqli_num_rows($result)>0)  {
        ?> 
            <table class="table table-bordered">
                 <p>วันที่ : <?php echo thaidatem($stdate); ?></p> 
			<thead>
				<tr>
					<th>#</th>
					<th>ชื่อลูกค้า</th>
					<th>การรับสินค้า</th>
					<th>รวมเป็นเงิน</th>
					<th>สถานะ</th>
				</tr>
			</thead>
			<?php 
                                                            $where=' where orders_date>="'.$stdate.'"   ';
                                                            $query = sprintf('select * from orders %s ',$where);
                                                            $result = mysqli_query($con,$query);
                             if (mysqli_num_rows($result)>0)  {   
                            for ($i=1;$i<=mysqli_num_rows($result);$i++) {
                            $rs = mysqli_fetch_array($result);
							$query2 = 'select * from orders_detail where orders_id='.$rs['orders_id'];
							$result2 = mysqli_query($con,$query2);	
                                                       for ($j=1;$j<=mysqli_num_rows($result2);$j++)
                                                       { $rs2 = mysqli_fetch_array($result2);
                                                 
							$query3 = 'select * from product where pro_no="'.$rs2['pro_no'].'"';
							$result3 = mysqli_query($con,$query3);
							$rs3 = mysqli_fetch_array($result3);
                                                                $sum='';
                                                                $sum  +=$rs2['pro_amount'] * $rs3['pro_price'];
                                                                }    
							$query4 = sprintf('select * from branch where br_id=%s',$rs['branch_id']);
							$result4 = mysqli_query($con,$query4);
							$rs4 = mysqli_fetch_array($result4); 
                                                        ?>	
			<tbody>
				<tr>
					<td><?php echo $i; ?></td>
					<td><?php echo $rs['cus_name']; ?></td>
					<td><?php echo 'รับที่ '.$rs4['br_name'].'<br> วันที่ : '.thaidate($rs['rec_date']).' - '.$rs['rec_time']; ?></td>
					<td><?php echo number_format($sum,2); ?></td>
					<td>
						<?php if ($rs['orders_status']==1) {echo 'ยังไม่ชำระเงิน';} 
									else if ($rs['orders_status']==2) { echo 'รอการตรวจสอบ'; } 
									else if ($rs['orders_status']==3) { echo 'รอจัดส่งสินค้า'; } 
									else {echo 'รับสินค้าเรียบร้อย';} ?>
					</td>
                                        
				</tr> 
                                                             <?php }} ?> 
			</tbody>
                           <tr>
                               <td colspan="5"><h5 class="pull-right">จำนวน <?php   echo $i-1; ?> รายการ    <br><br>รวม <?php   echo number_format($val,2); ?> บาท</h5></td>
                          </tr>        
                                <?php  } $stdate = date ("Y-m-d", strtotime("+1 month", strtotime($stdate)));}?>
              </table>



ช่วยแนะทำทีคับผม



Tag : PHP









ประวัติการแก้ไข
2016-09-28 15:47:59
2016-09-28 15:48:02
2016-09-28 16:06:22
2016-09-28 16:06:54
2016-09-28 16:08:13
2016-09-28 16:09:18
2016-09-28 16:10:00
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-09-28 15:15:40 By : DisconnectOver View : 909 Reply : 20
 

 

No. 1



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

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

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


ดันติดวันของอีกเดือนมาด้วย มันคืออะไร ตรงไหนในรูปที่เกินมาครับ ที่ไม่ต้องการครับ

#เอา code ใส่ tag PHP ครับจะได้อ่านง่าย






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-28 15:58:42 By : apisitp
 


 

No. 2



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



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


ตารางเดือน 9 ครับ ช่องสุดท้ายติดเดือน 10 มาด้วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-28 16:05:52 By : DisconnectOver
 

 

No. 3



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

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

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


ก็ในรูปคุณขึ้น วันที่ 09/2016 เราก็งงตามสิครับ....

สรุป ในฟิลด์ที่เก็บข้อมูล เปลี่ยนรูปแบบเป็น date ตามหลักสากลครับ yyyy-mm-dd อาทิ 2016-10-31 เวลาทำอะไรจะง่าย...

ไม่งั้นก็ต้องมาแยก วัน เดือน ปี เพื่อเทียบ ใช้ substr ก็ได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-28 22:00:27 By : apisitp
 


 

No. 4



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


บันทัด19
$where=' where orders_date>="'.$stdate.'" ';

สีแดงมากกว่าหรือเท่ากับ ถ้ามันจะมีหลายเดือนก็ไม่แปลก
กำหนดวันสิ้นสุดด้วยสิครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-29 02:10:11 By : Chaidhanan
 


 

No. 5



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



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


ในรูป วันที่ 9/2016 ที่จริงเป็นเดือน 9/2016 ครับ ลืมเปลี่ยน ขอโทษทีครับผม

$where=' where orders_date>="'.$stdate.'" ';

ควรเปลี่ยนเป็นแบบไหนหรอครับช่วยทีครับผม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-29 09:01:16 By : DisconnectOver
 


 

No. 6



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



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


$where=' where orders_date>="'.$stdate.'" ';

ถ้าต้องการข้อมูลทั้งหมดของเดือนนั้น ผมทำประมาณแบบนี้อ่ะ

$stdate = "YYYY-mm";
$where=' where DATE_FORMAT(orders_date,'%Y-%m')="'.$stdate.'" ';
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-29 09:12:57 By : thesin18598
 


 

No. 7



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



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


ทำไมข้อมูลผมไม่ออกมา T_T งงสุดๆครับ ที่ขึ้นตารางเพราะมีข้อมูลอยู่ครับ

$where=' where DATE_FORMAT(orders_date,%Y-%m)="'.$stdate.'" ';

ลองแล้วเกิดอาการแบบนี้ครับ


ประวัติการแก้ไข
2016-09-29 11:01:08
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-29 11:00:34 By : DisconnectOver
 


 

No. 8



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


echo $where มาดูหน่อยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-29 11:07:05 By : Chaidhanan
 


 

No. 9



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



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


นี้ครับผม

where DATE_FORMAT(orders_date,'%Y-%m') = 2016-08-01 where DATE_FORMAT(orders_date,'%Y-%m') = 2016-09-01 where DATE_FORMAT(orders_date,'%Y-%m') = 2016-10-01
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-29 11:56:51 By : DisconnectOver
 


 

No. 10



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



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


ก่อนจะนำตัวแปร $stdate ไปใส่ใน $where ก็ตัด วันที่ออกก่อนครับ

เพราะในเงื่อนไขคุณเช็คแค่ ปี กะ เดือน


Code (PHP)
$x = '2016-08-01';
echo date('Y-m', strtotime($x));

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-29 12:20:24 By : 9nonameman
 


 

No. 11



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



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


ปรับแล้วครับ งงมาก ไม่มีอะไรออกมาเลย

Code (PHP)
$stdate=$_GET['stdate'];
date('Y-m', strtotime($stdate));

0-0


ประวัติการแก้ไข
2016-09-29 13:47:59
2016-09-29 13:49:15
2016-09-29 13:54:57
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-29 13:42:11 By : DisconnectOver
 


 

No. 12



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


$where=Singlequote where orders_date>=doublequotesinglequote.$stdate.singlequotedoublequote singlequote;

ไม่น่าจะเป็นแบบ ข้างบนนะครับ

result ที่ได้ควรจะเป็น แบบนี้
Code (SQL)
where orders_date >= '2016-08-01' and order_date<'2016-08-02' 

จากตัวอย่างข้างบน จะเป็นการกำหนดข้อมูลเฉพาะภายในวันที่ 2016-08-01 ก็ลองเขียนดูว่าจะให้ออกมาตามตัวอย่างยังไง
mysql statement ใช้ single quote ครอบส่วนของ value back quote ครอบส่วนของ name
ผมยังไม่เคยใช้ double quote ครอง value เลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-01 02:43:13 By : Chaidhanan
 


 

No. 13



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



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


ผมทำตามที่ อาจารย์ Chaidhanan แนะนำแล้วครับ แต่ ปรากฎว่า ค้นหาตั้งแต่เดือน 8-10 เดือน 8 มีข้อมูลลแต่ข้อมูล แสดงผลแค่ 9-10 แคนั้นอะครับ ผมพลาดตรงไหนช่วยดูให้ทีครับ ขอบุณครับ


Code (PHP)
          <?php    while (date('Y-m',strtotime($stdate)) <= date('Y-m',strtotime($endate)))  {     
            $where='where DATE_FORMAT(orders_date,"%Y-%m")>="'.$stdate.'" and  DATE_FORMAT(orders_date,"%Y-%m") <"'.$stdate.'+1"';
            $query = sprintf('select * from orders %s  ',$where);
            $result = mysqli_query($con,$query);
             if (mysqli_num_rows($result)>0) {
        ?> 



ทำตามที่อาจารบอกแล้วครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-03 09:43:02 By : DisconnectOver
 


 

No. 14



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


3. $query = sprintf('select * from orders %s ',$where);
echo $query; exit;

เพิ่มสีแดงต่อท้าย บันทัด 3
เอา result ที่ได้ บันทัดนี้มาแสดงหน่อยครับ

อยากให้เห็น statement sql เต็มๆ ว่าเป็นยังไง ทำไมถึงพอคิวรี่แล้วได้ข้อมูลไม่ตรงตามต้องการ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-03 10:53:50 By : Chaidhanan
 


 

No. 15



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



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


select * from orders where DATE_FORMAT(orders_date,"%Y-%m")>="2016-08-01" and DATE_FORMAT(orders_date,"%Y-%m") <"2016-08-01+1"

ได้แบบนี้ครับ อาจารย์


ประวัติการแก้ไข
2016-10-03 11:31:51
2016-10-03 11:34:36
2016-10-03 11:35:12
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-03 11:29:40 By : DisconnectOver
 


 

No. 16



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

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

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


เสริมครับ ไม่รู้จะแก้ได้หรือยังนะครับ แต่ถ้าค้นหาแล้วเป็นวันที่ ทำไมไม่ลองใช้ between ดูบ้างครับ มันชัดเจนกว่า and
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-03 13:38:08 By : apisitp
 


 

No. 17



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



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


ยังเลยครับ ไม่เคยลองใช้ between สักเท่าไหร่อะครับ ขอบคุณ อาจารย์ Mr.กล้า ที่แนะนำครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-03 14:26:49 By : DisconnectOver
 


 

No. 18



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

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

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


https://www.thaicreate.com/php/forum/124796.html ความเห็นที่ 6 และ 7 มีเรื่อง between เล็กๆ อาจจะตอบโจทย์มากกว่า
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-04 08:20:10 By : apisitp
 


 

No. 19



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


select * from orders where DATE_FORMAT(orders_date,"%Y-%m")>="2016-08-01" and DATE_FORMAT(orders_date,"%Y-%m") <"2016-08-01+1"

ตรงสีแดง มันไม่ใช่ วันที่ 2016-08-02 แต่เป็น text "2016-08-01+1"
$where='where DATE_FORMAT(orders_date,"%Y-%m")>="'.$stdate.'"
and DATE_FORMAT(orders_date,"%Y-%m") <"'.$stdate.'+1"';

แก้เป็น
Code (PHP)
$where='where DATE_FORMAT(orders_date,"%Y-%m")>="'.$stdate.'" 
and  DATE_FORMAT(orders_date,"%Y-%m") <"'.date('Y-m-d', strtotime('+1 day', strtotime($stdate))).'" ';


หรือ
Code (PHP)
$where='where DATE_FORMAT(orders_date,"%Y-%m")>="'.$stdate.'" 
and  DATE_FORMAT(orders_date,"%Y-%m") <date_add("'.$stdate.'", interval 1 day)';


ลองเขียน เอาค่าจริงใส่แทนดูก็น่าจะเห็นข้อแตกต่าง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-04 13:23:24 By : Chaidhanan
 


 

No. 20



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



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


ขอบคุณครับ อาจารย์ Chaidhanan และ อาจารย์ Mr.กล้า ตอนนี้แก้ได้เรียบร้อยแล้วครับ ^_^ อีก 15 วันสอบตื่นเต้น ขอบคุณมาก ๆ ครับที่ให้คำแนะนำ ด้วยครับที่หาข้อมูลดี ๆ ศึกษาเพิ่มเติม ขอบคุณทุกๆ ท่านครับ ขอบคุณเพจ ดี ๆ ที่แนะนำความรู้ให้ครับ ^_^


ประวัติการแก้ไข
2016-10-04 14:15:23
2016-10-04 14:15:58
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-04 14:14:22 By : DisconnectOver
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : คือผมทำออกมาแล้วมันลูปตามเดืิอนแล้วแต่ ดันติดวันของอีกเดือนมาด้วย ผมพลาดตรงไหนพี่ๆช่วยดูให้หน่อยครับผม
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 อัตราราคา คลิกที่นี่