 |
อยากรันคำสั่ง MySQL ใน PHP file อย่างไง โดยให้แสดงข้อมูลตามวันที่ค้นหา |
|
 |
|
|
 |
 |
|

โดยนำมาค้นหาในหน้าเว็บโดยที่เรียกวันที่ในการค้นหาได้
คำสั่งจาก SQL
Code (SQL)
SELECT p.hn,concat(p.pname,p.fname,' ',p.lname) as patientname,p.cid,concat(p.firstday,' ',p.reg_time) as regis_date,
CONCAT(n1.nationality,'-',n1.name) as nationality,CONCAT(n2.nationality,'-',n2.name) as citizenship,o.name as employee from patient p
LEFT OUTER JOIN ksklog k ON k.detail=p.hn AND k.modifytype = 'Insert'
LEFT OUTER JOIN opduser o ON o.loginname=k.loginname
LEFT OUTER JOIN nationality n1 ON n1.nationality=p.nationality
LEFT OUTER JOIN nationality n2 ON n2.nationality=p.citizenship
WHERE p.firstday BETWEEN '$startdate' AND '$enddate' and p.nationality = '00' OR p.citizenship = '00'
ORDER BY p.hn;
โดยเลือกวันที่จากหน้าเว็บ

ให้แสดงข้อมูลอย่างไงครับ
Tag : PHP
|
|
 |
 |
 |
 |
Date :
2017-05-29 19:57:02 |
By :
Leonet |
View :
959 |
Reply :
1 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คำถามครับ
1) ถ้า query โดยไม่มี where ได้ข้อมูลหรือยังครับ (ลองใช้ limit 10; ต่อท้ายให้แสดงข้อมูลออกมาแค่ 10 record)
2) คอลัมน์ firstday ข้อมูลเป็นแบบไหนครับ DATE หรือ DATETIME
- DATE : WHERE (p.firstday BETWEEN '2010-01-30' AND '2010-09-29')
- DATETIME : WHERE (p.firstday BETWEEN '2010-01-30 14:15:55' AND '2010-09-29 10:15:55')
หรือ
- DATE : WHERE (p.firstday >= '2010-01-30' AND datetime <= '2010-09-29');
- DATETIME : WHERE (p.firstday >= '2010-01-30 14:15:55' AND datetime <= '2010-09-29 10:15:55');
หรือถ้า p.firstday เป็น DATETIME จะเอาแค่ DATE ก็ใช้ฟังก์ชั่นช่วย
- WHERE DATE(p.firstday) BETWEEN '2016-12-01' AND '2016-12-10';
ลองเอาไป query จาก phpmyadmin หรือ mysqlworkbench ก่อนว่าได้มั๊ย
3) echo SQL ใน php ดูก่อนว่าตรงกับค่าที่ต้องการได้ตามข้อที่ 2 มั๊ย แล้วค่อย query ใน php
4) ถ้าค่าปีเดือนวัน อาจจะสลับกัน ก็บังคับรูปแบบให้เลย str_to_date(date, '%d-%m-%Y')
- WHERE str_to_date(date, '%d-%m-%Y') between '2017-03-23' and '2017-04-02';
การกำหนดรูปแบบวันที่ใน mysql และ php มีผล ถ้าวันที่กับเดือนไม่เกิน 12 ถ้าไม่กำหนดรูปแบบ อาจจะได้ค่าที่ไม่ถูกต้อง
ลองกำหนดดูครับ
- str_to_date(date, '%d-%m-%Y') วัน-เดือน-ปี
- str_to_date(date, '%Y-%m-%d') ปี-เดือน-วัน
|
 |
 |
 |
 |
Date :
2017-05-30 11:23:27 |
By :
ccjpn |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|