The Web Design Group

... Making the Web accessible to all.

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
> loop not "processing" on it's last loop
matthewst
post May 24 2007, 02:04 PM
Post #1





Group: Members
Posts: 4
Joined: 24-May 07
Member No.: 2,902



I have a loop that pulls timestamps from a database, converts them to hours:minutes:seconds echo's that then adds all of them together and echo's that as well. The problem I have is on the final loop it isn't doing any of the math. The code will pull the timestamps and convert them and even display the converted timestamps. It just won't do the calcualtions and then echo it.

example:
tim____start____8:00
tim____end_____8:15
total time 15 min
------------------------
mike__start____8:02
mike__end_____8:12
total time 10 min
------------------------
jack___start____8:05
jack___end_____8:17

------------------------
complete total time 25 min

no total time for jack and complete total time should be 37 min

CODE
$query4="SELECT * FROM job_log WHERE $table_id=table_id";

$complete_total_time = 0;

$last_value = "";
$result4=mysql_query($query4);
while($row4 = mysql_fetch_assoc($result4)) {
    if (preg_match('/Start Creation|Start Table PTG|Cutting - Begin|Begin 1st Proof|Proof Print - Begin|Start In-House Fix|Final Print - Begin|Start Outside Change/',$action6)){
    $start_action = $time_table4;
    $start_count++;}
    
    if ($action6=="Pause"){
    $pause_time = $time_table4;
    $pause_count++;
    $start_action1 = $pause_time - $start_action;}
    
    if ($action6=="Resume"){
    $resume_time = $time_table4;
    $resume_count++;}
                
    if (preg_match('/End Creation|Finish Table PTG|Cutting - End|End 1st Proof -OK|End 1st Proof - FIX|End In-House Fix|Final Print - End|End Outside Change/',$action6)){
        $end_action = $time_table4;
        $end_count++;
        
        if ($end_count > $start_count){
        $start_action = "0";
        $start_count--;}
        
        if ($resume_count < $pause_count){
        $sec = ($end_action - $start_action) + $start_action1;
        $total_seconds = $sec;
        $hr = floor($sec/60/60);
        $sec = $sec - $hr * 60 * 60; 
        $min = floor($sec/60); 
        $sec = $sec - $min * 60;
        $total_time = sprintf("%02d:%02d:%02d", $hr, $min, $sec);
        $start_count = "0";
        $end_count = "0";
        $pause_count = "0";
        $resume_count = "0";
        $pause_time = "0";
        $resume_time = "0";
        if ($total_time > "05:00:00" || $total_time <= "00:00:00"){echo "";}
        else {echo "<center><table border = '0' cellspaceing = '0' cellpadding = '-1' width = '10%' bgcolor = '#999999'>";
        echo "<tr><td align = 'center' width = '100%'>$total_time</td>";
        echo "</tr></table></center>";
        $complete_total_time += $total_seconds;}}        
        
        $sec = ($end_action - $resume_time) + ($pause_time - $start_action);
        $total_seconds = $sec;
        $hr = floor($sec/60/60);
        $sec = $sec - $hr * 60 * 60; 
        $min = floor($sec/60); 
        $sec = $sec - $min * 60;
        $total_time = sprintf("%02d:%02d:%02d", $hr, $min, $sec);
        $start_count = "0";
        $end_count = "0";
        $pause_count = "0";
        $resume_count = "0";
        $pause_time = "0";
        $resume_time = "0";
        if ($total_time > "05:00:00" || $total_time <= "00:00:00"){echo "";}
        else {echo "<center><table border = '0' cellspaceing = '0' cellpadding = '-1' width = '10%' bgcolor = '#999999'>";
        echo "<tr><td align = 'center' width = '100%'>$total_time</td>";
        echo "</tr></table></center>";
        $complete_total_time += $total_seconds;}}    

    else{
    echo "";}
    
{
$time_table4 = $row4['time'];
$employee_name5 = $row4['employee_id'];
$action6 = $row4['action'];
$showtime2 = date('m/d/y-h:i:s',$time_table4);
    if ($showtime2=="12/31/69-06:00:00")
    $showtime2 = "No Entry";
    else
    $showtime2 = date('m/d/y-h:i:s',$time_table4);

        $query5 = "SELECT * FROM employees WHERE employee_id = '$employee_name5'";
        $result5 = mysql_query($query5);
        while($row5 = mysql_fetch_assoc($result5)) 
        {
                $employee_name5 = $row5['fname']." ".$row5['lname'];
                if ($employee_name5=="")
                $employee_name5 = "No Entry";
                else
                $employee_name5 = $row5['fname']." ".$row5['lname'];
                
        }
        
        $query6 = "SELECT * FROM job_actions WHERE action_id = '$action6'";
        $result6 = mysql_query($query6);
        while($row6 = mysql_fetch_assoc($result6)) 
        {
                 $action6 = $row6['action_name'];
                     if ($action6=="")
                    $action6 = "No Entry";
                    else
                    $action6 = $row6['action_name'];
        }
        
if($row['action_id'] != $last_value){ 
$last_value = $row['action_id'];}

}
echo "<center><table border = '0' cellspaceing = '0' cellpadding = '1' width = '100%' bgcolor = '#ffffff'>";
echo "<tr><td align = 'center' abbr = abbr_text width = '40%'>$table_id</td><td align = 'center' width = '20%'>$employee_name5</td><td align = 'center' width = '20%'>$showtime2</td><td align = center width = '25%'>$action6</td></tr>";
echo "</table></center>";
}

$sec = $complete_total_time;
$hr = floor($sec/60/60);
$sec = $sec - $hr * 60 * 60; 
$min = floor($sec/60); 
$sec = $sec - $min * 60;
$complete_total_time = sprintf("%02d:%02d:%02d", $hr, $min, $sec);
echo "$complete_total_time";


I'm a php noob, so sorry about the messy code.
User is offlinePM
Go to the top of the page
Toggle Multi-post QuotingQuote Post
matthewst
post May 25 2007, 07:39 AM
Post #2





Group: Members
Posts: 4
Joined: 24-May 07
Member No.: 2,902



Thanks lostboy (webber forums)

I just had to do the math one more time after the loop.
User is offlinePM
Go to the top of the page
Toggle Multi-post QuotingQuote Post

Reply to this topicStart new topic
2 User(s) are reading this topic (2 Guests and 0 Anonymous Users)
0 Members:

 



- Lo-Fi Version Time is now: 28th April 2024 - 12:10 PM