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,027

HOME > PHP > PHP Forum > รบกวนสอบถามเรื่องการจัดกลุ่มข้อมูล ประเภทเดียวกัน ในรูปแบบ ตารางด้วย Mysql ครับ



 

รบกวนสอบถามเรื่องการจัดกลุ่มข้อมูล ประเภทเดียวกัน ในรูปแบบ ตารางด้วย Mysql ครับ

 



Topic : 136348



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



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




01
ตัวอย่างข้อมูลที่ระบบแสดงผลอยู่เป็นแบบนี้ครับ สีแดงคือกลุ่มคนที่อยู่กลุ่มเดียวกัน โดยรายละเอียดอื่นๆต่างกันแค่ชื่อ กับ ข้อมูลส่วนตัว แต่ข้อมูลจับหรือสถานที่เหมือนกันหมด เลยอยากให้มันรวมกุ่มกันและเรียงลงมา ในฐานข้อมูล ข้อมูลแต่ละคนเก็บกันคนระ reccord อยู่ครับ


ผลลัพท์ที่อยากได้ หากจัดกลุ่มแล้วไม่ต้องนำมาแสดงซ้ำในระบบ
02

เราจะมีวิธีไหนทำได้บ้างครับ ตอนนี้ ใช้ While loop ออกมาเฉยๆ เท่าที่คิดไว้อาจะเป็น แบบนี้ ไม่รู้มันเขียดได้หรือเปล่าครับ case study หน่อยครับ

Code (PHP)
while(){

if(){
 while(){

}

}

}




Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2021-08-21 16:56:40 By : gmgo View : 779 Reply : 6
 

 

No. 1



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



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


มันน่าจะมีคอลัมน์กลุ่มคดีด้วย เพื่อให้มัน query order ตามกลุ่ม
สมมุติจากภาพก็จะแบ่งเป็น 3 กลุ่มคดี กลุ่มแรกสีแดง กลุ่มสองกับสามเป็นทำร้ายกับก่อการร้าย

เวลาquery ก็ ORDER BY กลุ่มคดี ASC

แล้วเวลาลูปแสดงผลก็เอา if มาช่วยในการเขียนเปิด-ปิด tr

Code (PHP)
$caseGroup = '';
while() {
    if (empty($caseGroup)) {
        // ถ้าไม่มีกลุ่มคดีของเก่า (เพิ่มเริ่ม loop) ให้กำหนดของปัจจุบันคือของเก่า
        $caseGroup = $row['case_group'];
    }
    if (!empty($caseGroup) && $row['case_group'] != $caseGroup) {
        // ถ้ากลุ่มคดีปัจจุบันไม่ตรงกับก่อนหน้า ให้ปิด-เปิด tr ใหม่
    }
    $caseGroup = $row['case_group'];
}


ประมาณนี้






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-21 17:14:09 By : mr.v
 


 

No. 2



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : mr.v เมื่อวันที่ 2021-08-21 17:14:09
รายละเอียดของการตอบ ::
มี crimeref_id เป็นตัวอ้างอิงครับ โดย Crimeref_id คือ Crime_id ของคนแรกเรียกได้ว่าเป็นหัวหน้ากลุ่มครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-21 18:10:34 By : gmgo
 

 

No. 3



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



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


Code (PHP)
 while($row = $result->fetch_assoc()){ // วนลูปแสดงรายการ
								$num++;
                                
								if($row["type_arrest"]=="1"){
								  $type_arrest_result="จับกุมซึ่งหน้า";
								}else{
								  $type_arrest_result="จับกุมตามหมายจับ";
								}
/////////แสดงผล ปี พศ 2021-10-22
    $covert=$row['date_catch'];
	$con_newday=substr($covert,8,2);
	$con_newmonth=substr($covert,5,-3);
	$con_newyear=substr($covert,0,-6)+543;
	$con_newdate=$con_newday.'-'.$con_newmonth.'-'.$con_newyear;
	
///////////////						
						?>
  <tr>
	<td><div align="center"><?=($step_num*$e_page)+$num?></div></td>
    <td width="120px"><div align="left"><?php echo $con_newdate;?></div></td>   
    <td><div align="left">
	<?=$row["name_title"].$row["criminal_fname"]."&nbsp;".$row["criminal_lname"];?>
	</div></td>
    <td width="auto"><div align="center"><?php echo $row["age"];?> ปี</div></td>
    <td><div align="left"><?php echo $row["gender"];?></div></td>
    <td><div align="left"><?php echo $row["id_card"];?></div></td>
    <td width="10%" align="left" ><?php echo 'เลขที่'."&nbsp;".$row["address_num"]."&nbsp;".'หมู่'."&nbsp;".$row["vilage"]."&nbsp;".'ซ.'."&nbsp;".$row["soi_num"]."&nbsp;".'ถ.'."&nbsp;".$row["road"]."&nbsp;".'ต.'."&nbsp;".$row["tumbol"]."&nbsp;".'อ.'."&nbsp;".$row["aumphur"]."&nbsp;".'จ.'."&nbsp;".$row["province"];?>
	</td>
</tr>
} ?>



เราจะวาง IF ยังไงครับ แล้ว While loop 555 ผมนึกอังกอริทึมไม่ออกครับ

Code (PHP)
$sql="xxxx";//สร้าง Statement เพิ่มภายใต้ While หลัก
$query=mysqli_query(x,x);
if(crimeref_id=='เหมือนกัน N แถว')//ตรงนี้แหละนึกไม่ออกจะเช็คตัวแปรไหนยังไง
while($result=mysqli_fetch_array($query)){
 echo '<td>'.$result["name_title"].$result["criminal_fname"]."&nbsp;".$result["criminal_lname"].'</td>';

}else{
 echo '<td>'.$row["name_title"].$row["criminal_fname"]."&nbsp;".$row["criminal_lname"].'</td>';
}

คิดออกแค่นี้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-21 18:24:07 By : gmgo
 


 

No. 4



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



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


nested

Nested-loop structured (pattern by Red)
<table> <thead> <tr> <th>No</th> <th>Name</th> <th>Data</th> <th>Group</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>Sub_No + Name_1<br>Sub_No + Name_2<br>Sub_No + Name_3<br>Sub_No + Name_7</td> <td>Data_1</td> <td>Group_1</td> </tr> <tr> <td>2</td> <td>Name_4</td> <td>Data_4</td> <td>Group_2</td> </tr> <tr> <td>3</td> <td>Name_5</td> <td>Data_5</td> <td>Group_3</td> </tr> <tr> <td>4</td> <td>Name_6</td> <td>Data_6</td> <td>Group_4</td> </tr> </tbody> </table>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-21 20:43:58 By : TheGreatGod_of_Death
 


 

No. 5



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



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


ดูตัวอย่างที่ผมเขียนไว้แล้ว
อันแรกตัวแปรสำหรับเช็คกลุ่ม กำหนดค่าว่างไปก่อน
ในลูป ถ้าไม่มีค่าคือว่างๆแปลว่าเพิ่งเริ่ม ให้กำหนดของเก่าเท่ากับของรอบปัจจุบัน
แล้วก็แสดงผล
แล้วก็ใส่เงื่อนไขว่าถ้าตัวแปรกลุ่มไม่ตรงกับกลุ่มของรอบปัจจุบัน ให้ปิด tr
แล้วก็กำหนดตัวแปรกลุ่มเป็นของรอบปัจจุบันอีกทีโดยไม่มีเงื่อนไขคลุม เพื่อให้รอบต่อไปใช้ตรวจสอบได้

Code (PHP)
$caseGroup = '';
while() {
    if (empty($caseGroup)) {
        // ถ้าไม่มีกลุ่มคดีของเก่า (เพิ่มเริ่ม loop) ให้กำหนดของปัจจุบันคือของเก่า
        $caseGroup = $row['case_group'];
    }
    // แสดงผล
    if (!empty($caseGroup) && $row['case_group'] != $caseGroup) {
        // ถ้ากลุ่มคดีปัจจุบันไม่ตรงกับก่อนหน้า ให้ปิด-เปิด tr ใหม่
    }
    $caseGroup = $row['case_group'];
}


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-21 21:32:19 By : mr.v
 


 

No. 6



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



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


ต่อจาก No.4

ตรงไหน Main ตรงไหน Nested Loop...

Code
<tr> <- Main loop whole <tr> based on unique groups count <td>1</td> <td> <- Check if there are more than one in group and make condition for "DO"/"DO NOT" loop Sub_No + Name_1<br> <- Nested loop inside <td> based on groups' values count Sub_No + Name_2<br> Sub_No + Name_3<br> Sub_No + Name_7 </td> <td>Data_1</td> <td>Group_1</td> </tr>


จำนวนการวนซ้ำแต่ละชั้น
Main Loop - <tr> อิงตามจำนวนกลุ่มที่ไม่ซ้ำ
Nested Loop - ใน <td> ลำดับ 2 (ไม่ใช่ loop ทั้ง <td>) อิงตามจำนวนสมาชิกของแต่ละกลุ่มที่ได้จาก Main Loop
นำฟังก์ชัน array_count_values() มาช่วยนับ


ประวัติการแก้ไข
2021-08-23 12:26:24
2021-08-23 12:27:48
2021-08-23 12:29:15
2021-08-23 12:32:08
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-23 12:20:08 By : TheGreatGod_of_Death
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนสอบถามเรื่องการจัดกลุ่มข้อมูล ประเภทเดียวกัน ในรูปแบบ ตารางด้วย 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 อัตราราคา คลิกที่นี่