jrm Posted February 3, 2009 Share Posted February 3, 2009 I have been working on this problem for about a month and cannot figure it out. I had it working with MS Access for selecting one month, but I need to convert it over to php. So I start with this function: function EnrolledBetween($StartDTG, $StopDTG) { include "Connection.php"; $dropquery = "Drop Temporary Table If Exists test.t_CadetsDates;"; $dropresults = mysql_query($dropquery, $link) or die("\n<p> Could not run query : " . $dropquery . " : " . mysql_error()); $createquery = "Create Temporary Table test.t_CadetsDates Select Cadets.CadetID, Cadets.Last, (Select DTG From Cadets_be.CadetsDates Where SDID=11 and Cadets.CadetID = CadetsDates.CadetID) as DoEntry, (Select DTG From Cadets_be.CadetsDates Where SDID=6 and Cadets.CadetID = CadetsDates.CadetID) as DoExit From Cadets_be.Cadets Where Cadets.Last<>'Test' Order by Last, First, Middle;"; $result = mysql_query($createquery, $link) or die("\n<p> Could not run query : " . $createquery . " : " . mysql_error()); $query = "Select CadetID, DoEntry, DoExit From test.t_CadetsDates"; $result = mysql_query($query, $link) or die("\n<p>Could not run query : " . $query . " : " . mysql_error()); if(mysql_num_rows($result)==0) { $CadetList = NULL; } else { for($j = 0; $j <= mysql_num_rows($result)-1; $j++) { $newrow = mysql_fetch_array($result,MYSQL_NUM); for($m = 0; $m <= mysql_num_fields($result)-1 ; $m++) { $CadetList[$j][mysql_field_name($result, $m)] = $newrow[$m]; } } } if(is_array($CadetList)) { //print_r($CadetList); $results = isEnrolled($CadetList,$StartDTG, $StopDTG); return $CadetList; } else { //echo "\n<p>$CadetList</p>"; return "N/A"; } } Which basically makes a pivot table from my Cadets_be.Cadets, Cadets_be.CadetsDates tables. And sends it to another function ( which I can not figure out) to put the cadets that were enrolled between the two dates into is Enrolled[]. The problem is that it is not a simple isbetween($StartDateTime, $StopDateTime). There are four dates to deal with. Can anybody direct me onto the right path? Quote Link to comment https://forums.phpfreaks.com/topic/143558-solved-isenrolled/ Share on other sites More sharing options...
jrm Posted February 3, 2009 Author Share Posted February 3, 2009 Solved it with this function: function isEnrolled($CadetRoster, $StartDTG, $StopDTG) { $timeframe = 60*60*24*240; for($i = 0; $i <= count($CadetRoster) - 1; $i++) { $DoEntry = strtotime($CadetRoster[$i]["DoEntry"]); $DoExit = (!empty($CadetRoster[$i]["DoExit"]) ? strtotime($CadetRoster[$i]["DoExit"]) : $DoEntry + $timeframe); if(($DoEntry <= $StopDTG) == True) { if(($StartDTG <= $DoExit) == True) { $Enrolled[] = $CadetRoster[$i]; } } } return $Enrolled; } Quote Link to comment https://forums.phpfreaks.com/topic/143558-solved-isenrolled/#findComment-753304 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.