2014-11-13 2 views
1

나는 날짜 범위 보고서를 작성하려고하는데 이는 내가 지금까지 가지고있는 것입니다.PHP 및 MySQL에서 통계 기간 보고서를 생성하려면 어떻게해야합니까?

양식

<form class="daterangeform" method="POST" action="datereport.php"> 
       <fieldset id="daterangefield"> 
        <legend><b>Date Range Report</b></legend> 
        <div class= "group1"> 
         <div class = "group2"> 
          <label for="fromdate"> From </label> 
          <br/> 
          <input type="date" name="fromdate" required/> 
         </div> 
         <div class = "group2"> 
          <label for="todate"> To </label> 
          <br/> 
          <input type="date" name="todate" required/> 
         </div> 
         <br/> 
        </div> 
       </fieldset> 
       <br/> 
        <div class="formbuttons"> 
         <input name= "formsubmit" id="formsubmit" type="submit" value="Generate Report" /> 
        </div> 
</form> 

MySQL의 쿼리는이 내가 달성하고자하는 것입니다

if(isset($_POST['formsubmit'])) 
{ 
    $fromdate=mysql_real_escape_string($_POST['fromdate']); 
    $todate=mysql_real_escape_string($_POST['todate']); 

    $sql = "select crime_type, count(*) from cases where commitment_date between '$fromdate' and '$todate' group by crime_type;"; 

    if($db->query($sql)) 
    { 
     echo "success"; 
    } 
    else 
    { 
     echo(mysql_error()); 
    } 
} 

(그것은 '성공'이다). 예를 들어 '강탈', '폭행'및 '교통 사고'의 범죄 유형이 있습니다. 날짜 범위를 선택하고 양식을 제출하면 특정 범위의 강도, 폭행 및 교통 사고 건수를 계산하여 표에 표시해야합니다. 나는이 일을 위의 쿼리에 대해 잘 모르겠습니다. 또한, 초보자부터 값을 표시하는 방법을 친절하게 도와주세요. 미리 감사드립니다.

+0

* obsolescne warning * : mysql _...이 (가) PHP에서 제거되었으므로 새로운 PHP 설치에서는 실행되지 않습니다. 전용 mysql API는 'mysqli _...'접두사를 사용하며 새로운 함수 시그니처를 가지므로 두 네임 스페이스 사이의 오타가 마술처럼 작동하지 않습니다. –

답변

0

다음은 약간의 도움이 될 수 있습니다. mysqli 함수를 사용하여 전환해야하지만 그것은 또 다른 주제이다. 나는 이것을 테스트하지 않았기 때문에 에러를 발생시킬 수 있었지만 이것이 일반적인 생각이다.

if(isset($_POST['formsubmit'])) 
{ 
    $fromdate=mysql_real_escape_string($_POST['fromdate']); 
    $todate=mysql_real_escape_string($_POST['todate']); 

    ##Added the count alias## 
    $sql = "SELECT crime_type, count(*) as count 
      FROM cases 
      WHERE commitment_date 
      BETWEEN '$fromdate' and '$todate' 
      GROUP BY crime_type;"; 

##assigned the query to a variable## 
$result = $db->query($sql); 

##if at least 1 result## 
    if($result && (mysql_num_rows($result) > 0)) 
    { 
    ##echo everything into a table## 
     echo "<table><thead><tr><th>Crime type</th><th>Count</th></tr></thead>"; 
     while ($row = mysql_fetch_assoc($result)) 
     { 
      echo "<tr><td>".$row['crime_type']."</td><td>".$row['count']."</td></tr>"; 
     } 
     echo "</table>"; 
    } 
    else 
    { 
     ##There won't be an error thrown for an empty result set## 
     echo "<h2>No records found...</h2>"; 
    } 
} 
+0

고맙습니다. 이 오류의 의미를 알 수 있습니까? 경고 : mysql_num_rows()는 매개 변수 1이 리소스가 될 것으로 예상하고, 주어진 정수는 ...... (mysql_num_rows ($ result)> 0) 인 경우 – Zazu

+0

쿼리가 결과를 반환하지 않으면 false를 반환합니다. 희망적으로 작동하는 쿼리를 사용하여 답변을 편집했습니다. 따라서 쿼리가 먼저 작동하는지 확인한 다음 나머지 스크립트를 진행하십시오. – Grasshopper

+0

* obsolescne warning * :'mysql _...'은 PHP에서 제거되었으므로 새로운 PHP 설치에서는 실행되지 않습니다. 전용 mysql API는 'mysqli _...'접두사를 사용하며 새로운 함수 시그니처를 가지므로 두 네임 스페이스 사이의 오타가 마술처럼 작동하지 않습니다. –

관련 문제