คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 2
ผมไม่แน่ใจ มีวิธีที่ดีกว่านี้มั้ย
แต่ปกติผมทำแบบนี้ แต่เงื่อนไขคือ ต้องเรียงลำดับฟิลด์ start_date ด้วย
หลักการคือ สร้างตัวแปรตัวนึงมาไว้เก็บ ค่าของ row ตำแหน่งก่อนหน้าครับ (ในที่นี้ใช้ $tmp)
แล้วตรวจสอบว่า ค่า ณ ตำแหน่งปัจจุบัน กับก่อนหน้านั้นเท่ากัน(เหมือนกัน)ไหม ถ้าไม่เท่ากัน ก็ให้ echo ค่าออกมา
แต่ถ้าเหมือนกันก็ไม่ต้องแสดงค่าอะไร
จากนั้นก่อนจบ loop ทำการเก็บค่าที่จะตรวจสอบไว้ที่ตัวแปรนั้น ทุกครั้ง เพื่อจะได้เช็คใน loop รอบถัดไป
แต่ปกติผมทำแบบนี้ แต่เงื่อนไขคือ ต้องเรียงลำดับฟิลด์ start_date ด้วย
$sql = "SELECT start_date ,report ,report_date ";
$rest = mysql_query($sql );
$tmp = "";
while ($row = mysql_fetch_array($rest){
if($tmp != $row["start_date"]) echo $row["start_date"];
$tmp = $row["start_date"];
}
$rest = mysql_query($sql );
$tmp = "";
while ($row = mysql_fetch_array($rest){
if($tmp != $row["start_date"]) echo $row["start_date"];
$tmp = $row["start_date"];
}
หลักการคือ สร้างตัวแปรตัวนึงมาไว้เก็บ ค่าของ row ตำแหน่งก่อนหน้าครับ (ในที่นี้ใช้ $tmp)
แล้วตรวจสอบว่า ค่า ณ ตำแหน่งปัจจุบัน กับก่อนหน้านั้นเท่ากัน(เหมือนกัน)ไหม ถ้าไม่เท่ากัน ก็ให้ echo ค่าออกมา
แต่ถ้าเหมือนกันก็ไม่ต้องแสดงค่าอะไร
จากนั้นก่อนจบ loop ทำการเก็บค่าที่จะตรวจสอบไว้ที่ตัวแปรนั้น ทุกครั้ง เพื่อจะได้เช็คใน loop รอบถัดไป
แสดงความคิดเห็น
สอบถามเรื่องการ Query ข้อมูล ภาษา PHP + Mysql ครับ
table : report
_________________________________________________
start_date (pk) | report | report_date (pk)
_________________________________________________
2013-01-01 | รายละเอียดงาน... | 2013-01-01
2013-01-01 | รายละเอียดงาน... | 2013-01-02
2013-01-05 | รายละเอียดงาน... | 2013-01-04
2013-01-05 | รายละเอียดงาน... | 2013-01-04
_________________________________________________
ผมก็ใช้คำสั่งประมาณนี้
$sql = "SELECT start_date ,report ,report_date "; (จริงๆมีเงื่อนไขมากกว่านี้ครับ)
$rest = mysql_query($sql );
while ($row = mysql_fetch_array($rest){
echo $row ค่าต่างๆออกมาลงตาราง
}
แต่ถ้าผมอยากให้มันแสดงผล start_date แค่ record เดียวถ้ามี ซ้ำกัน
ให้ออกมาหน้าตาแบบข้างล่างนี้ผมต้องเพิ่มเงือนไขตรง php หรือว่า ตรง ฐานข้อมูล หรือยังไงก็ได้ครับ
รบกวนขอคำแนะนำด้วยครับขอบคุณครับ
_________________________________________________
start_date (pk) | report | report_date (pk)
_________________________________________________
2013-01-01 | รายละเอียดงาน... | 2013-01-01
| รายละเอียดงาน... | 2013-01-02
2013-01-05 | รายละเอียดงาน... | 2013-01-04
| รายละเอียดงาน... | 2013-01-04
_________________________________________________