แสดงกระทู้
|
หน้า: [1] 2 3 ... 9
|
10
|
อื่นๆ / Cafe / Re: มีใคร work from home บ้างคะ
|
เมื่อ: 20 เมษายน 2018, 10:28:50
|
ผมทำอยู่ครับ งานก็มีประมาณนี้ครับ ทำเว็บไซต์/แปลเอกสาร/กราฟฟิก/IT Support /สื่อสิ่งพิมพ์/ Media /Digital Marketing /PR ให้บริษัท ครับ
|
|
|
18
|
พัฒนาเว็บไซต์ / Programming / Re: สอบถามการ JOIN 2 ตารางข้อมูลไม่แสดงครับ
|
เมื่อ: 23 พฤษภาคม 2017, 10:28:21
|
โค้ดตามนี้ครับ รบกวนช่วยหน่อยครับผมแก้ไม่ตกครับว่าทำไมเวลา Search ข้อมูลตามวันที่ไม่แสดงครับ $query = " SELECT T1.id,T1.orders_dates FROM orders AS T1 INNER JOIN order_details AS T2 SUM(order_detail_quantity * order_detail_price) total ON T1.id = T2.order_id GROUP BY order_id WHERE orders_dates BETWEEN '".$_POST["from_date"]."' AND '".$_POST["to_date"]."' "; $result = mysqli_query($connect, $query); เอา Database ของ orders กับ order_details มาดูโหน่ยสิครับ ถ้าดูโค้ดลอยๆ ถ้าอักษรผิดตัวเดียวมันก้อเปิดไม่ได้อยู่แล้ว Database
|
|
|
19
|
พัฒนาเว็บไซต์ / Programming / Re: สอบถามการ JOIN 2 ตารางข้อมูลไม่แสดงครับ
|
เมื่อ: 22 พฤษภาคม 2017, 18:31:45
|
โค้ดตามนี้ครับ รบกวนช่วยหน่อยครับผมแก้ไม่ตกครับว่าทำไมเวลา Search ข้อมูลตามวันที่ไม่แสดงครับ $query = " SELECT T1.id,T1.orders_dates FROM orders AS T1 INNER JOIN order_details AS T2 SUM(order_detail_quantity * order_detail_price) total ON T1.id = T2.order_id GROUP BY order_id WHERE orders_dates BETWEEN '".$_POST["from_date"]."' AND '".$_POST["to_date"]."' "; $result = mysqli_query($connect, $query); เวลาท่านใช้ AS ... ท่านต้องเอา alias มาใช้กำหนดข้างหน้าในแต่ละ column ของ tb นั้นด้วยนะครับ เช่น blash_tb.blah_column_name หวังว่าคงไม่งงนะครับ **โปรแกรมมิ่งไม่ใช่แค่ copy&paste ผมเอามาใส่แล้วแต่ไม่ได้เหมือนเดิมครับ ผมเคยแจ้งแล้วนะครับ ว่าโจทย์ท่าน ท่านต้องลองทดสอบดู และหาข้อผิดพลาดมันควรจะอยู่ตรงไหน ในกรณีที่ผลของ query ไม่ได้เป็นไปตามที่ท่านตั้งใจเอาไว้หรืออยากให้เป็น(คิดเอง ทำเอง แก้เอง) ซึ่งคำตอบก็มีท่านอื่นๆ ได้ใบ้ไปหมดแล้ว(สำหรับ mysql basic) อันนี้ต้องงมต่อครับ ไม่ใช่ copy & paste แล้วรัน แล้วผลลัพธ์ยังไม่ได้อีก แล้วมาโพสตามต่อ นั่นแสดงว่า ท่านไม่ได้หาข้อมูล หรือมีพื้นฐานเกี่ยวกับ mysql หรือเทคนิคการดัดแปลงเลย ใช่ครับวันนี้ท่านมีปัญหา มาโพสแล้วมีเทพ(และเทพมั่วซั่วมาตอบแบบไม่รู้หลักการจริงๆ) ท่านอาจจะโชคดีไปถ้าเกิดมัน(ฟลุ๊ค)ใช้งานได้ขึ้นมา แต่วันอื่นๆในชีวิตการเขียนโปรแกรมของท่านล่ะครับ ท่านจะทำยังไง มาโพสถามอีกหรือ? == เข้าประเด็น === โจทย์แบบนี้มันแค่การดึงรายการมาทำ report/summary เท่านั้น ไม่ได้ยากเกินความสามารถท่านหรอกครับ แค่ join 2-3 ตาราง ผมออกมาทำงานจริงๆเคย join 6-7 ตารางแหน่ะครับวิ่งฉิวๆ mysql มันไม่ได้ฉลาดมาก แต่ก็ไม่โง่จนเกินไป ถ้าอันนี้ไม่ได้ ลองแบบอื่นดูครับ สังเกตุผลลัพธ์ไปเรื่อยๆ แล้วท่านจะจับทางมันได้ โจทย์ไหนๆ ดูแปปเดียวก็ทำได้แล้ว ฝึกทำบ่อยๆ เดวก็ชิน พยายามหาโจทย์มาลองทำเยอะๆ (ตอนเรียนวิทย์คอมพ์ผมไม่ได้ออกไปไหนเลย) ปล อันนี้ผมไม่ได้ตำหนิท่านนะครับ ดีใจที่ท่านสนใจในงานโปรแกรมมิ่งด้วยซ้ำ (ข้อความด้านบนจะเป็นส่วนหนึ่งของคำพูดอ.ที่เคยสอนผมสมัยเรียน ซึ่งตอนนั้นผมรู้สึกแย่มาก แต่ตอนนี้คิดได้แล้ว) ส่วนด้านล่างนี้ผมลองทำเป็นตัวอย่างให้ดูครับว่า เวลาเราจะดึงข้อมูลที่มีการ join เพื่อทำ report/summary นั้น สามารถทำอย่างไรได้บ้าง == tables schema for testing == CREATE TABLE IF NOT EXISTS `oc_order` ( `order_id` int(11) NOT NULL AUTO_INCREMENT, `customer_id` int(11) NOT NULL, `date_added` datetime NOT NULL, `date_modified` datetime NOT NULL, PRIMARY KEY (`order_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `oc_order` (`order_id`, `customer_id`, `date_added`, `date_modified`) VALUES (null,9, '2017-05-22 12:11:28', '2017-05-22 12:11:28'); INSERT INTO `oc_order` (`order_id`, `customer_id`, `date_added`, `date_modified`) VALUES (null,12, '2017-05-25 14:20:48', '2017-05-25 14:20:48');
CREATE TABLE IF NOT EXISTS `oc_order_detail` ( `order_detail_id` int(11) NOT NULL AUTO_INCREMENT, `order_id` int(11) NOT NULL, `product_id` int(11) NOT NULL, `product_name` varchar(128) NOT NULL, `quantity` int(11) NOT NULL, `unit_price` decimal(15,4) NOT NULL DEFAULT '0.0000', `date_added` datetime NOT NULL, PRIMARY KEY (`order_detail_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `oc_order_detail` (`order_detail_id`, `order_id`, `product_id`, `product_name`, `quantity`,`unit_price`,`date_added`) VALUES (null,1,77,'Samsung Galaxy Tab10.2', 2, '120.0000', '2017-05-22 12:11:28'); INSERT INTO `oc_order_detail` (`order_detail_id`, `order_id`, `product_id`, `product_name`, `quantity`,`unit_price`,`date_added`) VALUES (null,1,88,'Galaxy Note 7', 3, '220.0000', '2017-05-22 14:20:48');
INSERT INTO `oc_order_detail` (`order_detail_id`, `order_id`, `product_id`, `product_name`, `quantity`,`unit_price`,`date_added`) VALUES (null,2,34,'Acer Notebook 001', 1, '1800.0000', '2017-05-25 12:11:28'); INSERT INTO `oc_order_detail` (`order_detail_id`, `order_id`, `product_id`, `product_name`, `quantity`,`unit_price`,`date_added`) VALUES (null,2,45,'HP Notebook 002', 1, '2900.0000', '2017-05-25 14:20:48');
ส่วนด้านล่างจะเป็นตัวอย่างคำสั่ง query ครับ (nested query) select order_id,sum(quantity) as qty,sum(sub_total) as total from ( select o.order_id,o.date_added,od.product_id,od.quantity,od.unit_price,(od.quantity*od.unit_price) as sub_total from oc_order as o left join oc_order_detail as od on (od.order_id=o.order_id) where o.date_added between '2017-05-20 00:00:00' and '2017-05-30 00:00:00' ) out_t group by order_id
ถ้าท่านยังมองภาพไม่ออกไปลิงค์ http://sqlfiddle.com/#!9/f19db1/11 ครับ ผมทำเป็นตัวอย่างให้ดูแบบง่ายๆแล้ว ขอบคุณครับผม จะเอาไปศึกษาข้อมูลต่อเพราะผมหาจากเว็บฝรั่งมาเจอการ JOIN แบบนี้แล้วเอามาปรับแล้วยัง ERROR ก็เลยเอามาถามครับ
|
|
|
20
|
พัฒนาเว็บไซต์ / Programming / Re: สอบถามการ JOIN 2 ตารางข้อมูลไม่แสดงครับ
|
เมื่อ: 22 พฤษภาคม 2017, 18:28:06
|
โค้ดตามนี้ครับ รบกวนช่วยหน่อยครับผมแก้ไม่ตกครับว่าทำไมเวลา Search ข้อมูลตามวันที่ไม่แสดงครับ $query = " SELECT T1.id,T1.orders_dates FROM orders AS T1 INNER JOIN order_details AS T2 SUM(order_detail_quantity * order_detail_price) total ON T1.id = T2.order_id GROUP BY order_id WHERE orders_dates BETWEEN '".$_POST["from_date"]."' AND '".$_POST["to_date"]."' "; $result = mysqli_query($connect, $query); เอา Database ของ orders กับ order_details มาดูโหน่ยสิครับ ถ้าดูโค้ดลอยๆ ถ้าอักษรผิดตัวเดียวมันก้อเปิดไม่ได้อยู่แล้ว พรุ่งนี้ผมจะแคปหน้าจอให้ครับผม
|
|
|
|
|