A-AA+then

จะเอาค่าที่ได้จากการวนลูป เทียบกับค่าที่อยู่ในฐานข้อมูล ได้ยังไง

1,507
จะเอาค่าที่ได้จากการวนลูป เทียบกับค่าที่อยู่ในฐานข้อมูล ได้ยังไง
ผมวนลูปดึงเอาเฉพาะวันเสาร์ขึ้นมา แล้วต้องการเปรียบเทียบกับข้อมูลที่อยู่ใน DB 
   ถ้า วันที่ในลูป = วันที่ใน DB ให้แสดงรหัสพนักงานออกมาแสดงในตาราง

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

อันนี้เป็น code ครับ
    <?
    include "function.inc.php";
    include "conn.php";
    $strStartDate = date("Y")."-01-01";
    $strEndDate = date("Y-m-d");
    $yearnow = date ("Y")+543;
     
    $intWorkDay = 0;
    $intHoliday = 0;
    $intPublicHoliday = 0;
    $intTotalDay = ((strtotime($strEndDate) - strtotime($strStartDate))/  ( 60 * 60 * 24 )) + 1; 
    echo"<center>";
    echo"<table width=\"450\" cellpadding=\"1\" cellspacing=\"1\" border=\"0\" style='background:#8B658B;' >";
    echo"<td align=\"center\"><b><font color=\"FFFFFF\">แถว 1</font></b></td>";
    echo"<td align=\"center\"><b><font color=\"FFFFFF\">แถว 2</font></b></td>";
    while (strtotime($strStartDate) <= strtotime($strEndDate)) {
     $DayOfWeek = date("w", strtotime($strStartDate));
      if($DayOfWeek ==6)  // 0 = Sunday, 6 = Saturday;
    {
    $intHoliday++;
    echo"<tr height=\"22\" bgcolor=\"#FFFFFF\">";
     echo"<td align=\"center\">$strStartDate</td>";
     $sql_chk_call="Select tb_oncall.*,users.U_username,users.U_name,users.U_surname from tb_oncall INNER JOIN users ON tb_oncall.call_user=users.U_username WHERE tb_oncall.U_province=30 order by call_id asc";
     mysql_query("SET NAMES tis620");
    $rs_call=mysql_query($sql_chk_call);
    while ($result=mysql_fetch_array($rs_call)) 
    {
    if($strStartDate==$result['call_date'])
    {
    if($result['call_user'] == "" )
    {
    echo"<td align=\"center\">ว่าง</td>";
    }else {
     echo"<td align=\"center\">".$result['call_user']."</td>";        
    }
    }
    }
    }
    $strStartDate = date ("Y-m-d", strtotime("+1 day", strtotime($strStartDate)));
    }
    echo"</table>";
    echo"</center>";
    echo"</form>";
    ?>

อันนี้ในฐานข้อมูล
                                                                               
                call_id                 call_date                 call_user                 U_province  
                                                                               
                3                 2012-01-14                 1618                 30
                                                                               
                4                 2012-01-21                 3278                 30
                                                                               
                5                 2012-01-28                 1609                 30

2 ความคิดเห็น

555++

ดูแล้วงง ... มีตัวช่วยให้แบบนี้นะครับ

SQL ีคำสั่งหาวันในสัปดาห์ด้วยคำสั่งนี้

DAYOFWEEK(create_date)

ผลลัพท์จะได้เป็น 1=วันอาทิตย์ ดังนั้นวันที่ต้องการคือวันเสาร์จะได้

SELECT * FROM table WHERE DAYOFWEEK(create_date)=7

คือ query เฉพาะวันเสาร์ ครับ
1

อธิบายเองยัง งง เองเลยครับ คือแค่อยากทำระบบลงเวลา 
เงื่อนไข
- เอาเฉพาะวันเสาร์ ตั้งแต่เสาร์แรกของปี จนถึงเสาร์ปัจจุบัน
- ถ้ามีการบันทึกวันลงฐานข้อมูลแล้ว user ที่มี U_province เหมือนกันจะไม่สามารถลงซ้ำได้


2
^