2012-07-20 2 views
0

사용자가 제공 한 날짜 범위에 대해 데이터베이스의 각 날짜에 대한 레코드를 표시하려고합니다. , 즉 사용자가 2012 년 7 월 2 일부터 2012 년 7 월 4 일까지를 지정하는 경우 출력은 이에 대한범위 사이의 각 날짜에 대한 레코드 표시

date:2012-july-02 
name | intime | outtime |Teamtype 

date:2012-july-03 
name | intime | outtime |Teamtype 

so on.. 

SQL이어야합니다 다음 : 내가 뭘하려

$s="SELECT InDate,mstEmp.cardnofrom mstEmp left join dailyattendance ON (InDate BETWEEN '$from' AND '$to') AND(dailyattendance.HolderName = mstEmp.empname) where teamtype='$chk'"; 
$objDB->SetQuery($s); 
$r = $objDB->GetQueryReference(); 

$sql= SELECT mstEmp.empname, 
     mstEmp.cardno, 
     InDate, 
     dailyattendance.InTime, 
     dailyattendance.OutTime, 
     mstEmp.teamtype    
FROM mstEmp 
LEFT JOIN dailyattendance  
ON (InDate BETWEEN '$from' AND '$to') AND (dailyattendance.HolderName =mstEmp.empname) 
WHERE mstEmp.teamtype = '$chk' 
ORDER BY InDate DESC 
$res = $objDB->GetQueryReference(); 

WHERE이의 insted에 속해야 일 동안 필터처럼 보이는

<!-- language: lang-php --> 

    while($rw=mysql_fetch_array($r)) 
    { 

    while($row=mysql_fetch_array($res)) 
    { 
     list($name, $crd,$indate,$in,$out,$t) = $row; 
     if($rw[1]!=$crd && $row[2]=='') 
     { 
      $d1='NULL'; 
      $d2='NULL'; 
     } 
     else 
     { 
     $d1 = date("g:i A", $in); 
     $d2 = date("g:i A" ,$out); 
     $d3 = date("d-m-Y (D)", $in); 
     $bg = ''; 
     if(date('D', $in) == 'Sun' || date('D', $in) == 'Sat') 
     $bg = 'bgcolor=#EEEEEE'; 
     else 
     $bg = 'bgcolor= #ECE5B6'; 
     if ($ddate != $row[2]) 
     { 
      echo "<tr $bg><td colspan=4>Date: ".$d3."</td></tr>"; 
      $ddate = $row[2]; 
     } 
     } 

     echo "<tr>"; 
     echo "<td align=left width='35%'>".trim($name)."</td>"; 
     echo "<td align=center width='20%' >".$d1."</td>"; 
     echo "<td align=center width='23%' >".$d2."</td>"; 
     echo "<td align=center width='16%'>".$t."</td>"; 
     echo "</tr>"; 
    } 
    echo "</table><br>"; 
    echo "</form>"; 
    } 

mysql_free_result($res); 
mysql_free_result($r); 
+1

그리고 무엇이 문제입니까? – Leri

+0

메신저 레코드가 있지만 값이 null 인 레코드 .ie 해당 직원이 부재중 인 경우 해당 직원 만 표시되고 null이면 다른 직원 레코드가 표시되지 않습니다. – Lissa

+0

if ($ rw [1]! = $ crd && $ row [2] == '') 다음은 "if ($ row [1]! = $ crd && $ row [2] == '')"형식 오류입니다. –

답변

0

입니다 ON

SELECT 
mstEmp.empname, 
mstEmp.cardno, 
InDate, 
dailyattendance.InTime, 
dailyattendance.OutTime, 
mstEmp.teamtype 
FROM mstEmp 
LEFT JOIN dailyattendance 
    ON (dailyattendance.HolderName = mstEmp.empname) 
WHERE 
    mstEmp.teamtype = '$chk' AND 
    InDate BETWEEN '$from' AND '$to' 
ORDER BY 
    InDate DESC 
+0

Null을 표시하지 않습니다. – Lissa

관련 문제