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 : 111553



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



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



หากต้องการให้สรุปข้อมูลออกมาแบบนี้ต้องเขียนโคดยังไงครับ ข้อมูลตามนี้ครับ
CODE

คือผมต้องการให้นับจำนวนจาก ID เช่น
ID ที่เท่ากับ3 มี 2 ตัว
ID ที่เท่ากับ4 มี 2 ตัว
ID ที่เท่ากับ5 มี 1 ตัว

คือ ผมคิดได้ว่าให้code มันเอาตัวที่เหมือนกันแยกออกมารวมกันครับ หรือ
หากจะเขียนเป็น CODE PHP ไม่ทราบว่าต้องเขียนยังไงครับ โปรดชี้แนะด้วยครับ



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-09-25 15:15:26 By : wittayakorn1 View : 886 Reply : 12
 

 

No. 1



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



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


GROUP BY
https://www.thaicreate.com/tutorial/sql-group-by.html






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-09-25 15:27:26 By : sabaitip
 


 

No. 2



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



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


select x1,x2,count(*) as countID from xxxx group by x1,x2
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-09-25 15:27:35 By : gaowteen
 

 

No. 3



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



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

Code (PHP)
$sql="SELECT  student_values.stu_id, student.stu_name, student.stu_lanme, student.stu_clase, student.stu_room, student_values.v_id, values12.v_name, student_values.teacher_id, teacher_admin.teacher_name, teacher_admin.teacher_lname, teacher_admin.type, teacher_admin.loginlast, student_values.sv_date, student_values.sv_mouth, student_values.sv_year, student_values.sv_time
FROM ((student INNER JOIN student_values ON student.stu_id = student_values.stu_id) INNER JOIN teacher_admin ON student_values.teacher_id = teacher_admin.teacher_id) INNER JOIN values12 ON student_values.v_id = values12.v_id  WHERE  student_values.stu_id like '%$textfield%'  AND student.stu_name like '%$textfield2%' AND student.stu_lanme like '%$textfield3%'  AND student.stu_clase like '%$stu_clase%' AND student.stu_room like '%$textfield4%'   ORDER BY  student_values.stu_id   ASC";



ไม่ทราบว่าหาโคดผมแบบนี้จะแทรกตรงใหนครับ
ต้องการให้ออกมาแบบนี้ครับ
CODE2
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-09-25 15:50:10 By : wittayakorn1
 


 

No. 4



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



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


SELECT distinct student_values.stu_id, student.stu_name, student.stu_lanme, student.stu_clase, student.stu_room, student_values.v_id, values12.v_name, student_values.teacher_id, teacher_admin.teacher_name, teacher_admin.teacher_lname, teacher_admin.type, teacher_admin.loginlast, student_values.sv_date, student_values.sv_mouth, student_values.sv_year, student_values.sv_time
,(select count(*) from student_values where stu_id = student.stu_id and v_id = student_values.v_id) as count_id
FROM ((student
INNER JOIN student_values ON student.stu_id = student_values.stu_id)
INNER JOIN teacher_admin ON student_values.teacher_id = teacher_admin.teacher_id)
INNER JOIN values12 ON student_values.v_id = values12.v_id
WHERE student_values.stu_id LIKE '%$textfield%' AND student.stu_name LIKE '%$textfield2%' AND student.stu_lanme LIKE '%$textfield3%' AND student.stu_clase LIKE '%$stu_clase%' AND student.stu_room LIKE '%$textfield4%'
ORDER BY student_values.stu_id ASC

ลองดู ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-09-25 16:14:57 By : gaowteen
 


 

No. 5



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



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

ขอบคุณมากครับท่าน BIrD ยังไม่ได้เหมือนเดิมครับ มันยังออกมากเหมือนไม่ได้เปลี่ยนอะไรเลยครับ
และขอถามเพิ่มว่าหากต้องการให้จำนวนมาโชว์ตรงแถวจำนวนครั้งต้องเขียนอะไรเพิ่มครับ รบกวนอีกครั้งครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-09-25 16:40:33 By : wittayakorn1
 


 

No. 6



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



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


ที่มันไม่ ได้ เพราะ , teacher_admin.loginlast, student_values.sv_date, student_values.sv_mouth, student_values.sv_year, student_values.sv_time อันนี้หรือป่าวครับ มันไม่เหมือนกัน เลย group ไม่ได้
จะเพิ่มจำนวน ก็
เพิ่ม คอลัม จำนวน แล้วก็ เอา count_id ไป ใส่ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-09-25 16:56:38 By : gaowteen
 


 

No. 7



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



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

ได้แล้วครับ แต่ตรงลูกศรสีแดงที่เป็นผลรวมยังไม่ถูกครับ ไม่ทราบว่าต้องทำอย่างไรครับ ขอบคุณมากๆๆครับ
FF
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-09-25 17:16:04 By : wittayakorn1
 


 

No. 8



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



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


SELECT student_values.stu_id, student.stu_name, student.stu_lanme, student.stu_clase, student.stu_room, student_values.v_id, values12.v_name, student_values.teacher_id, teacher_admin.teacher_name, teacher_admin.teacher_lname, teacher_admin.type, teacher_admin.loginlast, student_values.sv_date, student_values.sv_mouth, student_values.sv_year, student_values.sv_time
,count(*) as count_id
FROM ((student
INNER JOIN student_values ON student.stu_id = student_values.stu_id)
INNER JOIN teacher_admin ON student_values.teacher_id = teacher_admin.teacher_id)
INNER JOIN values12 ON student_values.v_id = values12.v_id
WHERE student_values.stu_id LIKE '%$textfield%' AND student.stu_name LIKE '%$textfield2%' AND student.stu_lanme LIKE '%$textfield3%' AND student.stu_clase LIKE '%$stu_clase%' AND student.stu_room LIKE '%$textfield4%'

group by student_values.stu_id, student.stu_name, student.stu_lanme, student.stu_clase, student.stu_room, student_values.v_id, values12.v_name, student_values.teacher_id, teacher_admin.teacher_name, teacher_admin.teacher_lname, teacher_admin.type, teacher_admin.loginlast, student_values.sv_date, student_values.sv_mouth, student_values.sv_year, student_values.sv_time

ORDER BY student_values.stu_id ASC

แบบ นี้ เลยครับง่าย ดี
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-09-25 17:25:20 By : gaowteen
 


 

No. 9



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



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

ขอบคุณมากครับแต่ผลรวมยังไม่ถูกครับ ตามภาพ ผลรวมมันน่าจะเป็นอย่างละสอง รบกวนอีกรอบครับ
w
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-09-25 17:35:06 By : wittayakorn1
 


 

No. 10



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



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


5555 นั่น ดิ ลืม ครับ
งั้นก็ แบบ เดิม ครับ

SELECT distinct student_values.stu_id, student.stu_name, student.stu_lanme, student.stu_clase, student.stu_room, student_values.v_id, values12.v_name, student_values.teacher_id, teacher_admin.teacher_name, teacher_admin.teacher_lname, teacher_admin.type, teacher_admin.loginlast, student_values.sv_date, student_values.sv_mouth, student_values.sv_year, student_values.sv_time
แก้ให้แล้ว ลองๆๆ
,(select count(*) from student_values a where a.stu_id = student.stu_id and a.v_id = student_values.v_id) as count_id
FROM ((student
INNER JOIN student_values ON student.stu_id = student_values.stu_id)
INNER JOIN teacher_admin ON student_values.teacher_id = teacher_admin.teacher_id)
INNER JOIN values12 ON student_values.v_id = values12.v_id
WHERE student_values.stu_id LIKE '%$textfield%' AND student.stu_name LIKE '%$textfield2%' AND student.stu_lanme LIKE '%$textfield3%' AND student.stu_clase LIKE '%$stu_clase%' AND student.stu_room LIKE '%$textfield4%'
ORDER BY student_values.stu_id ASC
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-09-25 21:26:49 By : gaowteen
 


 

No. 11



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



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


ด้วยผมไม่รู้ว่า Database Server เป็นอะไร MySql หรือ SqlServer เลยเขียนแบบกลางๆ นะครับ
อันดับแรกคุณต้องหาค่าจำนวนที่ซ้ำก่อน ซึ่งเป็น main detail
select stu_id, v_id, count(v_id) count_V from student_value group by stu_id

แล้ว หารายละเอียดที่ต้องใช้ร่วมกับ ตารางอื่นลงไป
select SV.stu_id, SV.teacher_id
, SV.sv_date
, SV.sv_mouth
, SV.sv_year
, SV.sv_time

, TB1.v_id
, TB1.count_V


from ( select stu_id, v_id, count(v_id) count_V from student_value group by stu_id) as TB1
left join student_values as SV
on sv.stu_id = TB1.stu_id


แล้วนำไป join กับ ตารางอื่นเพื่อให้ได้ สิ่งที่ต้องการเพิ่ม
SELECT
TB2.stu_id,
student.stu_name, student.stu_lanme, student.stu_clase, student.stu_room, student_values.v_id,
values12.v_name, TB2.teacher_id,
teacher_admin.teacher_name, teacher_admin.teacher_lname, teacher_admin.type, teacher_admin.loginlast,
TB2.sv_date, TB2.sv_mouth, TB2.sv_year, TB2.sv_time
FROM (
select SV.stu_id, SV.teacher_id, SV.sv_date, SV.sv_mouth, SV.sv_year, SV.sv_time
, TB1.v_id, TB1.count_V

from ( select stu_id, v_id, count(v_id) count_V from student_value group by stu_id) as TB1
left join student_values as SV
on sv.stu_id = TB1.stu_id

) as TB2
LEFT JOIN student on student.stu_id = TB2.stu_id
LEFT JOIN teacher_admin ON teacher_admin.teacher_id = TB2.teacher_id
LEFT JOIN values12 ON values12.v_id = TB2.v_id

ส่วน ต้องการบางเรคคอร์ดที่ต้องการก็ใส่ where clause ลงไป เข่น

WHERE TB2.stu_id like '%$textfield%'
AND student.stu_name like '%$textfield2%'
AND student.stu_lanme like '%$textfield3%'
AND student.stu_clase like '%$stu_clase%'
AND student.stu_room like '%$textfield4%'

รวมถึงการจัดเรียง
ORDER BY TB2.stu_id ASC; // จัดเรียง ASC ไม่จำเป็น เพราะ มันเรียง เหมือน กับ group by อยู่แล้วครับ

SV และ TB2 เป็น tempolarity table ครับ

ปล. เขียนโดยไม่ได้มีการทดสอบนะครับ เพราะไม่มี ตาราง จะให้ทดสอบ ผิดผลาดประการใดก็ขออภัยนะครับ


ประวัติการแก้ไข
2014-09-26 08:20:19
2014-09-26 08:21:42
2014-09-26 08:24:08
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-09-26 08:19:54 By : Chaidhanan
 


 

No. 12



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



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

ต้องขอขอบคุณท่านทั้งสองมากครับ โดยเฉพาะท่าน Chaidhanan อธิบายได้ชัดเจนมากครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-09-26 10:30:47 By : wittayakorn1
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
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 อัตราราคา คลิกที่นี่