Jump to content

Logic or time out problem?


fishdog

Recommended Posts

So the code works right, (I think)  but for some reason the way I built it the logic comes back null.

 

I can do All w a specific shift/s, and All with department/s but I can't do All shifts and All departments

it doesn't' error either, just brings back nothing, maybe timing out?

 

 

I'm very new at this so I apologize in advance.

 

 

 

Code below

############################################################

<form method="post" action="">

<br><br>

<table bordercolor="yellow" border="2">

 

<tr><td class="line"><b>Start Date:</b></td><td>

<input type="text" name="startdate" value="mm/dd/yyyy" /></td></tr>

</tr>

<tr><td class="line"><b>End Date:</b></td><td>

<input type="text" name="enddate" value="mm/dd/yyyy"  /></td></tr>

</tr>

 

<tr><td class="line"><b>Shift:</b></td><td>

<SELECT NAME="shift" >

      <option selected>Select Shift</option>

    <option>First</option>

    <option>Second</option>

    <option>Third</option>

    <option>All</option>

      </SELECT> </td></tr>

     

<tr><td class="line"><b>Department:</b></td><td>

<SELECT NAME="department" >

      <option selected>Select Department</option>

    <option>Advanced Hosting Support</option>

    <option>Server Support</option>

    <option>Managed Support</option>

    <option>All</option>

      </SELECT> </td></tr>

</tr>   

</tr>

</table>

 

<br><br>

<input type="submit" value="submit" />

</form>

<form action="" method="post">

 

</form>

 

</html>

 

 

<?php

require_once('global.inc.php');

 

 

class DataLogic

{

//function to obtain Employee names from RealID array to pass to MSSQL for call count

 

function GetEmpNames ($RealID)

{

global $ems_db_connect;

 

 

foreach ($RealID as $emplist){

 

$query1 = mysql_query ("SELECT FirstName, LastName

  FROM ems_employee_list

WHERE RealID=$emplist", $ems_db_connect) or die(mysql_error());;

 

while($row = mysql_fetch_array($query1))

{

$FirstName[] = $row['FirstName'];

$LastName[] = $row['LastName'];

}

 

}

$friendlyname = array('first_name' => $FirstName, 'last_name' =>$LastName);

return $friendlyname;

}

 

//function to display Employee names from RealID array obtained from department and shift

 

function DisplayEmpNames ($RealID)

{

global $ems_db_connect;

 

 

foreach ($RealID as $emplist){

 

$query1 = mysql_query ("SELECT FirstName, LastName

  FROM ems_employee_list

WHERE RealID=$emplist", $ems_db_connect) or die(mysql_error());;

 

while($row = mysql_fetch_array($query1))

{

$FirstName = $row['FirstName'];

$LastName = $row['LastName'];

$fullname[] = "$LastName, $FirstName";

}

 

}

return $fullname;

}

 

//function to pull the RealID's of Employees based on shift

//Returns a list of RealID's for use with GetIris and RepSort functions

function SelectEmpShift ($key)

{

global $ems_db_connect;

 

 

switch($key)

{

case "First":

$shift = 1;

break;

 

case "Second":

$shift = 2;

break;

 

case "Third":

$shift = 3;

break;

 

default:

$shift = 4;

 

}

if ($shift == 4){

 

$query1 = mysql_query ("SELECT RealID

  FROM ems_employee_list

  LEFT JOIN ems_employee_schedules

            USING (EmployeeID)

  WHERE RealID > 0 AND Department='AHS'", $ems_db_connect) or die(mysql_error());

 

while ($row = mysql_fetch_array($query1))

{

$x[]=$row['RealID'];

}

}

 

else {

$query1 = mysql_query ("SELECT RealID

  FROM ems_employee_list

  LEFT JOIN ems_employee_schedules

            USING (EmployeeID)

  WHERE RealID > 0 AND Shift = $shift AND Department ='AHS'", $ems_db_connect);

 

 

 

while ($row = mysql_fetch_array($query1))

{

$x[]=$row['RealID'];

}

}

 

return $x;

}

 

//Function to Select Employees based on Department

function SelectEmpDep ($key)

{

global $ems_db_connect;

 

 

switch($key)

{

case "Managed Support":

$deptcode = 6;

break;

 

case "Server Support":

$deptcode = 5;

break;

 

case "Advanced Hosting Support":

$deptcode = 2;

break;

 

default:

$deptcode = 7;

 

}

if ($deptcode == 7){

 

$query1 = mysql_query ("SELECT RealID

  FROM ems_employee_list

  LEFT JOIN ems_employee_schedules

            USING (EmployeeID)

  WHERE RealID > 0 AND Department='AHS'", $ems_db_connect) or die(mysql_error());

 

while ($row = mysql_fetch_array($query1))

{

$x[]=$row['RealID'];

}

}

 

elseif ($deptcode == 5){

 

 

$query1 = mysql_query ("SELECT RealID

  FROM ems_employee_list

  LEFT JOIN ems_employee_schedules

            USING (EmployeeID)

  WHERE RealID > 0 AND AccessID=5 OR AccessID=3 AND Department='AHS' AND RealID >0", $ems_db_connect) or die(mysql_error());

 

while ($row = mysql_fetch_array($query1))

{

$x[]=$row['RealID'];

}

}

 

else {

 

$query1 = mysql_query ("SELECT RealID

  FROM ems_employee_list

  LEFT JOIN ems_employee_schedules

            USING (EmployeeID)

  WHERE RealID > 0 AND AccessID=$deptcode AND Department ='AHS' ", $ems_db_connect);

 

 

 

while ($row = mysql_fetch_array($query1))

{

$x[]=$row['RealID'];

}

 

}

 

return $x;

}

 

 

//function to sort Shift by multiple Deparments

function RepSortShiftDept ($RealIDShift, $RealIDDepartment='', $RealIDDepartment2='')

 

{

$deptnumber = func_num_args();

 

if ($deptnumber == 1)

{

 

$result = $RealIDShift;

}

 

elseif ($deptnumber == 2)

{

 

$result = array_intersect($RealIDShift, $RealIDDepartment);

}

 

else {

$result = array_intersect($RealIDShift, array_merge($RealIDDepartment, $RealIDDepartment2));

}

 

return $result;

}

 

//function to sort Department by multiple Shifts

function RepSortDeptShift ($RealIDDepartment, $RealIDShift='', $RealIDShift2='')

 

{

$shiftnumber = func_num_args();

 

if ($shiftnumber == 1)

{

 

$result = $RealIDDepartment;

}

 

elseif ($shiftnumber == 2)

{

 

$result = array_intersect($RealIDDepartment, $RealIDShift);

}

 

else {

$result = array_intersect($RealIDDepartment, array_merge($RealIDShift, $RealIDShift2));

}

 

return $result;

 

}

 

 

//Function to get and display count of Iris tickets from a date rage.

//$RealID needs to be an array of EmployeeIDs obtained from SelectEmpShift, SelectEmpDepart, and RepSort functions

function GetIris($RealID, $startdate, $enddate)

{

global $hocstat_db_connect;

 

foreach ($RealID as $emplist){

 

$mssqlquery = "SELECT COUNT (IncidentID) AS mycount

FROM hocstats.dbo.DailyStatsEmployee

WHERE hocstats.dbo.DailyStatsEmployee.EmployeeID=$emplist

AND(hocstats.dbo.DailyStatsEmployee.DateModified

BETWEEN '$startdate 00:00:00.000' AND '$enddate 23:59:59.000')";

 

$query_3 = mssql_query ($mssqlquery, $hocstat_db_connect);

$row =(mssql_fetch_array($query_3)) ;

$iriscount[] = $row['mycount'];

}

return $iriscount;

}

 

 

//Function to get and display call counts from a date range. For use with GetEmpName ONLY

function GetCalls ($friendlyname, $startdate, $enddate)

{

global $hocstat_db_connect;

 

for ($x = 0; $x < count ($friendlyname['last_name']); $x++)

{

 

$query1 ="SELECT ISNULL(SUM(CallsHandledToHalf), 0) AS calls

FROM Agent_Skill_Group_Half_Hour ASGHH WITH (NOLOCK)

INNER JOIN dbo.agent ON ASGHH.skilltargetid = dbo.agent.skilltargetid

WHERE(dbo.agent.enterprisename = 'HOC_{$friendlyname['last_name'][$x]}_{$friendlyname['first_name'][$x]}'

OR dbo.agent.enterprisename = '{$friendlyname['last_name'][$x]}_{$friendlyname['first_name'][$x]}')

AND (ASGHH.datetime BETWEEN '$startdate 00:00:00' AND '$enddate 23:59:00')";

 

$mssqlquery = mssql_query ($query1, $hocstat_db_connect);

 

while ($row =(mssql_fetch_array($mssqlquery)))

{

$callcount[] = $row['calls'];

}

 

}

return $callcount;

}

 

}//class close

 

 

if($_POST)

//setting varibles from form input

{

 

$shift_id= isset($_POST['shift']) ? trim($_POST['shift']) : die('Missing entry: Shift Selection');

$start_date= isset($_POST['startdate']) ? trim($_POST['startdate']) : die('Missing enty: Start Date');

$end_date= isset($_POST['enddate']) ? trim($_POST['enddate']) : die('Missing enty: End Date');

$depart_id= isset($_POST['department']) ? trim($_POST['department']) : die('Missing entry: Shift Selection');

 

}

 

 

echo "You have selected stats for $shift_id shift(s) and $depart_id department(s) from $start_date to $end_date. </br>" ;

 

$test=new DataLogic();

 

$calls = $test->GetCalls($test->GetEmpNames($test->RepSortShiftDept($test->SelectEmpShift("$shift_id"), $test->SelectEmpDep("$depart_id"))), $start_date, $end_date);

 

 

$iris= $test->GetIris ($test->RepSortShiftDept($test->SelectEmpShift("$shift_id"), $test->SelectEmpDep("$depart_id")), $start_date, $end_date);

 

$name= $test-> DisplayEmpNames($test->RepSortShiftDept($test->SelectEmpShift("$shift_id"), $test->SelectEmpDep("$depart_id")));

 

$table = array ( 'calls' => $calls, 'iris' => $iris, 'name' => $name);

 

for ($x = 0; $x < count ($table['calls']); $x++)

{

echo $table["name"][$x];

echo "</br> Calls Taken :";

echo $table["calls"][$x];

echo "</br> Iris Tickets Resolved:";

echo $table["iris"][$x];

echo "</br>";

 

}

 

?>

 

Link to comment
Share on other sites

First put the value attribute in the select options.

<SELECT NAME="shift" >
      <option value="" selected>Select Shift</option>
     <option value="First">First</option>
     <option value="Second">Second</option>
     <option value="Third">Third</option>
     <option value="All">All</option>
</SELECT>

 

Then capture them in PHP.  see if you are really getting the values in php. Then one by one print the SQL being run and its SQL output. Try runing the SQL on DB directly to check if it returns some result or not.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.