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 > สอบถามปัญหาคำสั่ง SQL ของ MySQL เกี่ยวกับการค้นหาโดยกำหนดวัน เวลาเริ่มต้น



 

สอบถามปัญหาคำสั่ง SQL ของ MySQL เกี่ยวกับการค้นหาโดยกำหนดวัน เวลาเริ่มต้น

 



Topic : 097078



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



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




search

จากรูปครับ คือผมสร้าง from ค้นหา จากฐานข้อมูลเพื่อนำไปใช้แสดง Graph โดยให้เลือก Transfer pressure คือ 1 หรือ 2
และ Date Time point คือ ช่วงเวลาที่ต้องการดู Graph โดยต้องการให้แสดงเริ่มต้นที่ Date Time point และแสดงย้อนหลังลงมา
และ Limit คือ กำหนดจำนวน Record ที่แสดงครับ เช่น

เลือก Transfer pressure 1
Date Time point 2013-06-26 21:09
Limit 30

ก็ให้แสดง Transfer pressure 1
เริ่มจากเวลา 2013-06-26 21:09 ลงมา
จำนวน 30 record

โค๊คครับ

Code (PHP)
$SQL1 = "SELECT $_POST[transfer],date_time FROM pressure WHERE date_time <= '$_POST[date_time]' ORDER BY date_time DESC LIMIT $_POST[limit]   ";
$result1 = mysql_query($SQL1);
$data1 = array();
while ($row = mysql_fetch_array($result1)) {
$data1[] = $row['date_time'];
}
$result2 = mysql_query($SQL1);
$data2 = array();
while ($row = mysql_fetch_array($result2)) {
if($_POST[transfer]=="tp1"){
$data2[] = $row['tp1'];
}
if($_POST[transfer]=="tp2"){
$data2[] = $row['tp2'];
}
}


ปัญหาคือหากผมใช้ ORDER BY date_time DESC ค่าแสดงออกมาถูกต้อง แต่ถ้าเปลี่ยนเป็น ASC มันไม่แสดงช่วงเวลาตามที่กำหนดครับ
แต่ไปแสดงค่าตั้งแต่เริ่มต้นแทนครับ



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-06-26 21:57:33 By : mazzard View : 1795 Reply : 4
 

 

No. 1



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



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

Quote:
แต่ถ้าเปลี่ยนเป็น ASC มันไม่แสดงช่วงเวลาตามที่กำหนดครับ


Code
WHERE date_time <= '$_POST[date_time]'


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

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






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-27 00:07:17 By : {Cyberman}
 


 

No. 2



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



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


คือที่ผมต้องการคือ ORDER BY ASC โดยเอาแค่ record ที่เริ่มตั้งแต่ 2013-06-26 21:09 ลงมาตาม Limit ครับ
สมมุติ เริ่ม

2013-06-26 21:09

มันก็ต้องเป็น

2013-06-26 21:09
2013-06-26 21:08
2013-06-26 21:07
2013-06-26 21:06
.......
จนครบ 30

แต่มันไปเริ่มที่ id 1 เริ่มต้น คือ 2013-06-25 01:00

ซึ่งไม่ใช่ที่ต้องการครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-27 00:29:37 By : mazzard
 

 

No. 3



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



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

คิดวิธีอื่นไม่ออก นอกจากทำการเรียกข้อมูลสองครั้ง

ครั้งแรก ORDER BY date_time DESC เก็บ ไอดีของ 30 รายการ

ครั้งที่สอง คือส่วนของการเรียกข้อมูลทั้งหมดออกมาแสดง
WHERE id IN (ไอดีทั้ง 30 รายการ) if($_POST['order_by'] == 'desc') $sql .= " ORDER BY date_time DESC "; if($_POST['order_by'] == 'asc') $sql .= " ORDER BY date_time ASC ";

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-27 01:51:16 By : {Cyberman}
 


 

No. 4



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



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


ขอโค๊ดแบบเต็มๆได้ไหมครับ มือใหม่ยัง งงๆ กับ WHERE id IN (ไอดีทั้ง 30 รายการ) ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-27 04:37:14 By : mazzard
 

   

ค้นหาข้อมูล


   
 

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