 |
ขอวิธีค้นหาข้อมูลจากตัวเลือก แล้วมีกล่องข้อความ วันที่เริ่ม วันสิ้นสุด ช่วยดูหน่อยครับ |
|
 |
|
|
 |
 |
|
Codeส่วนนี้ทั้งหมด (PHP)
<?php
$startDate = isset($_POST['startDate'])? $_POST['startDate'] : '';
$endDate = isset($_POST['endDate'])? $_POST['endDate'] : '';
$page = empty($_GET['page']) ? 1 : $_GET['page'];
$search = ! empty($_GET['fault_code']) ? htmlspecialchars($_GET['fault_code']) : NULL;
// แสดงข้อมูลก่อนการค้นหา
$query = " SELECT * FROM fault,fault_register,member where member.member_key='".$member_detail->member_key."' AND fault_register.member_key=member.member_key AND fault_register.fault_key=fault.fault_key AND fault_register.fault_key=fault_regis_date BETWEEN '$startDate' AND '$endDate' "; //คำสั่ง SQL
// กำหนดเงื่อนไขในการค้นหา โดยให้เลือกฟิลด์ที่กำหนด
if (@addslashes($_GET["tbSelect"]) !="" and @addslashes($_GET["txtKey"]) !=""){
$query .= " AND (" . $_GET["tbSelect"] . " LIKE '%" . $_GET["txtKey"] . "%') ";
}
$objQuery = mysql_query($query) or die("ไม่สามารถค้นหาได้ [" . $query . "] ");
$sql = mysql_query($query);
$total_records = mysql_num_rows($sql); //นับจำจำนวน record
$scroll_page = 5; //จำนวนแบ่งหน้าที่จะให้แสดง คือ <ก่อนหน้า , 1 , 2 , 3 , ต่อไป>
$per_page = 10;
$current_page = $page; //รับค่าเพจ
$pager_url = '?p=payaqua&member_code='.$_GET["member_code"].'&tbSelect='.$_GET["tbSelect"].'&txtKey='.$_GET["txtKey"].'&page='; //URL ตามตัวครับ
$inactive_page_tag = 'id="current_page"'; //ตำแหน่งหน้าปัจจุบัน
$previous_page_text = '< ย้อนกลับ'; //ปุ่มย้อนกลับ
$next_page_text = 'ถัดไป >'; //ปุ่มถัดไป
$first_page_text = '<< หน้าแรก'; //ปุ่มหน้าแรก
$last_page_text = 'หน้าสุดท้าย >>'; //ปุ่มหน้าสุดท้าย
$kgPagerOBJ = new kgPager(); #เรียกใช้งาน class
$kgPagerOBJ -> pager_set($pager_url, $total_records, $scroll_page, $per_page, $current_page, $inactive_page_tag, $previous_page_text, $next_page_text, $first_page_text, $last_page_text, $pager_url_last);
$sql = mysql_query($query." ORDER BY fault_register.fault_regis_date LIMIT ".$kgPagerOBJ -> start.", ".$kgPagerOBJ -> per_page."");
#------ตัวแบ่งหน้า คือ <ก่อนหน้า , 1 , 2 , 3 , ต่อไป> จะเอาไปแปะตรงไหนก็ได้ในหน้าเพจ----#
echo '<p id="pager_links">';
echo $kgPagerOBJ -> first_page;
echo $kgPagerOBJ -> previous_page;
echo $kgPagerOBJ -> page_links;
echo $kgPagerOBJ -> next_page;
echo $kgPagerOBJ -> last_page;
#-------------ส่วนแสดงผลจำนวน record ทั้งหมด--------------#
echo '<strong> จำนวนแถว : </strong>';
echo $kgPagerOBJ -> total_records; echo '<strong> แถว</strong>';
echo ' <strong>จำนวน : </strong>';
echo $kgPagerOBJ -> total_pages; echo '<strong> หน้า</strong>';
#-------------จบส่วนแสดงผลจำนวน record ทั้งหมด--------------#
while ($read = mysql_fetch_assoc($sql)) {
$i++;
if($read['payment_status'] == 1){
$paytext = 'ชำระแล้ว';
$bgcolor = '#91FE6D';
}else if($read['payment_status'] == 2){
$paytext = 'ชำระบางส่วน';
$bgcolor = '#FFE06F';
}else{
$paytext = 'ยังไม่ได้ชำระ';
$bgcolor = '#FF6D74';
}
?>

อยากแก้ส่วนนี้ให้ค้นหาวันที่ได้ด้วยครับ Code (PHP)
if (@addslashes($_GET["tbSelect"]) !="" and @addslashes($_GET["txtKey"]) !=""){
$query .= " AND (" . $_GET["tbSelect"] . " LIKE '%" . $_GET["txtKey"] . "%') ";
Tag : PHP, Appserv
|
ประวัติการแก้ไข 2019-06-06 13:59:47 2019-06-06 15:11:01 2019-06-06 15:44:21 2019-06-06 15:44:56
|
 |
 |
 |
 |
Date :
2019-06-06 13:58:33 |
By :
Error 404 |
View :
2509 |
Reply :
17 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้าเป็น Date จะต้องใช้ Format และ DataType ให้ถูกต้องครับ
|
 |
 |
 |
 |
Date :
2019-06-07 09:49:53 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้า Filter ด้วยวันที่ก็ต้องใช้ BETWEEN DATE_FROM AND DATE_TO
Code (SQL)
SELECT * FROM TABLE_NAME
WHERE DATE_COLUMN BETWEEN DATE_FROM AND DATE_TO;
|
 |
 |
 |
 |
Date :
2019-06-07 15:26:47 |
By :
Manussawin |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (PHP)
$objQuery = mysql_query($query) or die("ไม่สามารถค้นหาได้ [" . $query . ']<br>['.mysql_error().'] ');
if(mysql_numrows($objQuery)<1){
die('ไม่พบรายการค้นหา [' . $query . ']');
}
เพิ่มการแสดงerror จะได้รู้ว่าผิดตรงไหน อะไรอย่างไร
เสร็จแล้วเอา error มาแสดงด้วย จะถามทั้งทียังจะอมพะนำ ไม่บอกรายละเอียดมาทั้งหมดมาอีก
คนตอบไม่ใช่เทวดานะครับ จะได้รู้ไปหมดทุกอย่าง
สิ่งสำคัญที่จะตอบได้คือ sql statement ที่ใช้ และ error อ่านโค๊ดอย่างเดียว มันไม่รู้ว่าตัวแปรมีค่าอะไรบ้าง
generate ออกมาแล้วได้ statement แบบไหน
หลายคำถามที่ไม่อยากตอบเพราะคนถามถามแบบไม่ใช่โปรแกรมเมอร์
พื้นฐาน input calculate output ไม่รู้จัก
|
 |
 |
 |
 |
Date :
2019-06-08 07:35:03 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
SELECT * FROM fault, fault_register, member
WHERE member.member_key='547d51af41a0079521d6eb14f9685a72'
AND falut_register.member_key=member.member_key
AND falut_register.fault_key=fault.fault_key
AND (fault_register.fault_register_date BETWEEN '2019-06-06' AND '2019-06-06')
LIMIT 0, 25
จริงๆ ถ้าแปลแล้วสังเกตเอาหน่อย ก็น่าจะรู้แล้วนะครับ
#1054 - Unknown column 'falut_register.member_key' in 'where clause'
สีแดงแปลว่าไม่รู้จัก เมื่อมันไม่รู้จักก็แสดงว่าเราพิมพ์ผิด ก็แค่สังเกตว่าเราพิมพ์ผิดตรงไหน
|
 |
 |
 |
 |
Date :
2019-06-08 15:42:22 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
SELECT *
FROM fault F1,fault_register FR, member MB
WHERE MB.member_key='dc1c2ff6c3f320e32f6929da23aa104f'
AND FR.member_key=MB.member_key
AND FR.fault_key=F1.fault_key
AND fault_register.fault_regis_date ตรงนี้เอาออก
AND FR.fault_regis_date BETWEEN '2019-06-06' AND '2019-06-06'
สีแดง FR.fault_regis_date มี TYPE เป็น DATETIME หรือ DATE
ถ้าเป็น datetime
AND FR.fault_regis_date BETWEEN '2019-06-06 00:00:00' AND '2019-06-06 23:59:59'
หรือ
AND date(FR.fault_regis_date) = '2019-06-06'
ไวยกรณ์ไม่ผิด แต่ algorithm ผิด ตรวจเช็ค condition ให้ดี อะไรต้องอยู่ในวงเล็บ ก็ใส่ซะด้วย
วันที่ เก็บแบบมีเวลาด้วยไหม ถ้ามีเวลา ตรวจเป็นวัน มันอาจจะไม่เจอ
|
ประวัติการแก้ไข 2019-06-08 15:52:10
 |
 |
 |
 |
Date :
2019-06-08 15:48:29 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|