Quantcast
Channel: PHP Freaks: PHP Help
Viewing all articles
Browse latest Browse all 13200

A better way to query this?

$
0
0

Hello all, this is my first post on phpfreaks.  
 
I'm trying to figure out what the better way to write this is.  I think that the way I have it is very slow and not the best way to.  Any idea?

 

 

function tot_time_worked_by_week(){
global $db;
$username = $_SESSION['username']; 
$sundayTime = $mondayTime = $tuesdayTime = $wednesdayTime = $thursdayTime = $fridayTime = $saturdayTime = 0;
$query = "SELECT user_id, time_zone FROM users WHERE user_name = '{$username}' ";
$resSet = $db->query($query,'assoc');
$user_id = $resSet[0]['user_id'];
$user_timezone = $resSet[0]['time_zone'];
$time = 0;
$query = "SELECT project_id FROM project WHERE user_id = '{$user_id}'";
$res = $db->query($query,'assoc');
if(!empty($res)):
foreach($res as $project):
$query = "SELECT track_id FROM project_track WHERE project_id = ".$db->prep($project['project_id']);
$resT = $db->query($query,'assoc');
if($resT != false){
	foreach($resT as $row):		
		$query = "SELECT time_start, time_end FROM track_time WHERE track_id = ".$db->prep($row['track_id'])." AND YEARWEEK(FROM_UNIXTIME(time_start)) = YEARWEEK(CURRENT_DATE) AND DAYOFWEEK(FROM_UNIXTIME(time_start)) = 1";	
		$sunday = $db->query($query,'assoc');
		if(empty($sunday[0]['time_start'])){
		$sundayTime += 0;
		}else{
		$sundayTime += calculate_time_past($sunday[0]['time_start'],$sunday[0]['time_end'],'U');
		}
		$query = "SELECT time_start, time_end FROM track_time WHERE track_id = ".$db->prep($row['track_id'])." AND YEARWEEK(FROM_UNIXTIME(time_start)) = YEARWEEK(CURRENT_DATE) AND DAYOFWEEK(FROM_UNIXTIME(time_start)) = 2";	
		$monday = $db->query($query,'assoc');
		if(empty($monday[0]['time_start'])){
		$mondayTime += 0;
		}else{
		$mondayTime += calculate_time_past($monday[0]['time_start'],$monday[0]['time_end'],'U');
		}
		$query = "SELECT time_start, time_end FROM track_time WHERE track_id = ".$db->prep($row['track_id'])." AND YEARWEEK(FROM_UNIXTIME(time_start)) = YEARWEEK(CURRENT_DATE) AND DAYOFWEEK(FROM_UNIXTIME(time_start)) = 3";	
		$tuesday = $db->query($query,'assoc');
		if(empty($tuesday[0]['time_start'])){
		$tuesdayTime += 0;
		}else{
		$tuesdayTime += calculate_time_past($tuesday[0]['time_start'],$tuesday[0]['time_end'],'U');
		}
		$query = "SELECT time_start, time_end FROM track_time WHERE track_id = ".$db->prep($row['track_id'])." AND YEARWEEK(FROM_UNIXTIME(time_start)) = YEARWEEK(CURRENT_DATE) AND DAYOFWEEK(FROM_UNIXTIME(time_start)) = 4";	
		$wednesday = $db->query($query,'assoc');
		if(empty($wednesday[0]['time_start'])){
		$wednesdayTime += 0;
		}else{
		$wednesdayTime += calculate_time_past($wednesday[0]['time_start'],$wednesday[0]['time_end'],'U');
		}
		$query = "SELECT time_start, time_end FROM track_time WHERE track_id = ".$db->prep($row['track_id'])." AND YEARWEEK(FROM_UNIXTIME(time_start)) = YEARWEEK(CURRENT_DATE) AND DAYOFWEEK(FROM_UNIXTIME(time_start)) = 5";	
		$thursday = $db->query($query,'assoc');
		if(empty($thursday[0]['time_start'])){
		$thursdayTime += 0;
		}else{
		$thursdayTime += calculate_time_past($thursday[0]['time_start'],$thursday[0]['time_end'],'U');
		}
		$query = "SELECT time_start, time_end FROM track_time WHERE track_id = ".$db->prep($row['track_id'])." AND YEARWEEK(FROM_UNIXTIME(time_start)) = YEARWEEK(CURRENT_DATE) AND DAYOFWEEK(FROM_UNIXTIME(time_start)) = 6";	
		$friday = $db->query($query,'assoc');
		if(empty($friday[0]['time_start'])){
		$fridayTime += 0;
		}else{
		$fridayTime += calculate_time_past($friday[0]['time_start'],$friday[0]['time_end'],'U');
		}
		$query = "SELECT time_start, time_end FROM track_time WHERE track_id = ".$db->prep($row['track_id'])." AND YEARWEEK(FROM_UNIXTIME(time_start)) = YEARWEEK(CURRENT_DATE) AND DAYOFWEEK(FROM_UNIXTIME(time_start)) = 7";	
		$saturday = $db->query($query,'assoc');
		if(empty($saturday[0]['time_start'])){
		$saturdayTime += 0;
		}else{
		$saturdayTime += calculate_time_past($saturday[0]['time_start'],$saturday[0]['time_end'],'U');
		}		
	endforeach;
}
endforeach;
endif;
echo $sundayTime;
echo $mondayTime;
echo $tuesdayTime;
echo $wednesdayTime;
echo $thursdayTime;
echo $fridayTime;
echo $saturdayTime;
}

 

 


Viewing all articles
Browse latest Browse all 13200

Trending Articles