I debugging everything and the reason that return 500 Error comes from this part :
for($k=0;$k<=$i;$k++)
{
    $crr_id=$field1['TestId'][$k];
    $sql2="SELECT Frontname FROM apply.StudentsInfo WHERE TestId='$crr_id'";
    $query2=mssql_query($sql2);
    while( $row2 = mssql_fetch_assoc($query2)){
        $row2['Frontname']=iconv("windows-874","utf-8", $row2['Frontname']);
        echo $row2['Frontname'];
        if($row2['Frontname']==iconv("windows-874","utf-8", "เด็กชาย") 
                   || $row2['Frontname']==iconv("windows-874","utf-8", "นาย"))
        {
            $male++;
        }
        else if($row2['Frontname']==iconv("windows-874","utf-8", "เด็กหญิง") 
                 || $row2['Frontname']==iconv("windows-874","utf-8", "นางสาว"))
        {
            $female++;
        }
    }
    mssql_free_result($query2); 
}
The problem is PHP gets data from MS SQL (data received prove by try to echo it) and go to if-else statement. For some reasons, it reject itself.
Solution that I tried: remove all iconv() functions. but doesn't work.
 
    