maiochine Posted July 1, 2010 Report Posted July 1, 2010 Hey it works ! take a look at this http://www.cargoitaliavirtual.com/index.php/TouchdownStats/top_landings/10 I would like to ask you one last thing if I could, I would like to have only top five landings and limited monthly and last last thingI would like to limit results of the best from -100 up to -200 if its less than -100 exp: -99 or more -201 I would not like to have them displayed ! Thanks again and best wishes Quote
Jeff Posted July 1, 2010 Report Posted July 1, 2010 I haven't been able to get the Top 5 to call properly yet, but once you get the Top 5 you wont need to show the best from -100 up to -200 since you are already showing 63, -56, -79, -90, and -90 Those will always be showing until someone beats them (except the 63, not sure how that one got on there). Quote
Administrators simpilot Posted July 1, 2010 Author Administrators Report Posted July 1, 2010 Hey it works ! take a look at this http://www.cargoitaliavirtual.com/index.php/TouchdownStats/top_landings/10 I would like to ask you one last thing if I could, I would like to have only top five landings and limited monthly and last last thingI would like to limit results of the best from -100 up to -200 if its less than -100 exp: -99 or more -201 I would not like to have them displayed ! Thanks again and best wishes Wait - how did Jeff's code work, I thought you were using the custom PIREP system and table. If that code is working then you must be using the native format and all the other functions will work as they are, no modification is needed. Quote
Administrators simpilot Posted July 1, 2010 Author Administrators Report Posted July 1, 2010 I haven't been able to get the Top 5 to call properly yet, but once you get the Top 5 you wont need to show the best from -100 up to -200 since you are already showing Those will always be showing until someone beats them (except the 63, not sure how that one got on there). The use of the limited function is within the first post of this thread. TouchdownStatsData::get_stats('10') This will only fill the variable with 10 listings, you can change the 10 to whatever you would like. You can use this in your module that calls the page (prefered) or within the template itself. or quite simply call the built in page of the module -> www.yoursite.com/index.php/TouchdownStats/top_landings/10 Quote
Jeff Posted July 1, 2010 Report Posted July 1, 2010 Yep, I got it to work with: www.yoursite.com/index.php/TouchdownStats/top_landings/10 Quote
maiochine Posted July 2, 2010 Report Posted July 2, 2010 Maybe he landed upside down. This is how I have mine setup you can look into it. <?php foreach($stats as $stat) { $pilot = PilotData::getPilotData($stat->pilotid); $aircraft = OperationsData::getAircraftInfo($stat->aircraft); echo '<tr align="center" valign="middle" bgcolor="#DFF4FF">'; echo '<td>'.PilotData::getPilotCode($pilot->code, $pilot->pilotid).' - '.$pilot->firstname.' '.$pilot->lastname.'</td>'; echo '<td>'.$aircraft->fullname.'</td>'; echo '<td>'.$stat->arricao.'</td>'; echo '<td>'.$stat->landingrate.'</td>'; echo '<td>'.date(DATE_FORMAT, strtotime($stat->submitdate)).'</td>'; echo '</tr>'; } ?> </table> </div> Jeff I still didn't make it to make a similar page to yours with only 10 landings !!!! Could you please tell me in a simple way (because I no almost nothing in coding) how you made your page work like that ? look at mine http://www.cargoitaliavirtual.com/index.php/TouchdownStats/ thanks Jeff Quote
MrAmsterdam Posted July 2, 2010 Report Posted July 2, 2010 Hi guys, Is someone going to have a look if it's possible to get the average touchdown rate per pilot? And per month, year and all time? :-) Please forigive me if someone is already working on this... :-) Regards, Lucas Quote
Administrators simpilot Posted July 2, 2010 Author Administrators Report Posted July 2, 2010 Jeff I still didn't make it to make a similar page to yours with only 10 landings !!!! Could you please tell me in a simple way (because I no almost nothing in coding) how you made your page work like that ? look at mine http://www.cargoitaliavirtual.com/index.php/TouchdownStats/ thanks Jeff @maiochine You have me lost at this point - who's code are you using? What I supplied to you for your custom pirep system or what Jeff gave you, which would be for the native pirep system. The limited number listings will have to be modified for your custom system, but if you are using the native system with the code from Jeff what is built in to the module will work. Quote
Administrators simpilot Posted July 2, 2010 Author Administrators Report Posted July 2, 2010 Hi guys, Is someone going to have a look if it's possible to get the average touchdown rate per pilot? And per month, year and all time? :-) Please forigive me if someone is already working on this... :-) Regards, Lucas It is possible to do, I have the module bringing all the data back - you can extend the code to include some more stats and functions if you would like. You can do a print_r to see what is coming back in your tpl file for you to use in your stats equations. Quote
maiochine Posted July 2, 2010 Report Posted July 2, 2010 @maiochine You have me lost at this point - who's code are you using? What I supplied to you for your custom pirep system or what Jeff gave you, which would be for the native pirep system. The limited number listings will have to be modified for your custom system, but if you are using the native system with the code from Jeff what is built in to the module will work. Hey Big Boss ! I'm using the codes you gave me <?php foreach($stats as $stat) { echo '<tr>'; echo '<td>'.$stat->PilotName.'</td>'; echo '<td>'.$stat->AircraftName.'</td>'; echo '<td>'.$stat->ArrivalIcaoName.'</td>'; echo '<td>'.$stat->TouchDownVertSpeedFt.'</td>'; echo '<td>'.$stat->datestamp.'</td>'; echo '</tr>'; } ?> this code worked perfectly I only need to know hoe to limit the stats for monthly stats and top 5 and Im aaaaaaaaaaaaaaaaal done Tanks again Simpilot Quote
Jeff Posted July 2, 2010 Report Posted July 2, 2010 These are the codes I have in their entirety: TouchdownStats.php (located in public_html/core/modules/TouchdownStats/TouchdownStats.php) <?php //simpilotgroup addon module for phpVMS virtual airline system // //simpilotgroup addon modules are licenced under the following license: //Creative Commons Attribution Non-commercial Share Alike (by-nc-sa) //To view full license text visit http://creativecommons.org/licenses/by-nc-sa/3.0/ // //@author David Clark (simpilot) //@copyright Copyright (c) 2009-2010, David Clark //@license http://creativecommons.org/licenses/by-nc-sa/3.0/ class TouchdownStats extends CodonModule { public function index() { $this->set('stats', TouchdownStatsData::get_all_stats('10')); $this->show('touchdownstats/touchdownstats_index.tpl'); } public function top_landings($howmany) { $this->set('stats', TouchdownStatsData::get_stats($howmany)); $this->show('touchdownstats/touchdownstats_index.tpl'); } } touchdownstats_index.tpl (located in public_html/core/templates/touchdownstats/touchdownstats_index.tpl) <div class="mcright"> <?php //simpilotgroup addon module for phpVMS virtual airline system // //simpilotgroup addon modules are licenced under the following license: //Creative Commons Attribution Non-commercial Share Alike (by-nc-sa) //To view full license text visit http://creativecommons.org/licenses/by-nc-sa/3.0/ // //@author David Clark (simpilot) //@copyright Copyright (c) 2009-2010, David Clark //@license http://creativecommons.org/licenses/by-nc-sa/3.0/ ?> <table width="100%" border="1" bordercolor="#FFFFFF" class="tablesorter" id="tabledlist"> <tr align="center" valign="middle" bgcolor="#0079B2"> <td>Pilot</td> <td>Aircraft</td> <td>Arrival Field</td> <td>Landing Rate</td> <td>Date Flown</td> </tr> <?php foreach($stats as $stat) { $pilot = PilotData::getPilotData($stat->pilotid); $aircraft = OperationsData::getAircraftInfo($stat->aircraft); echo '<tr align="center" valign="middle" bgcolor="#DFF4FF">'; echo '<td>'.PilotData::getPilotCode($pilot->code, $pilot->pilotid).' - '.$pilot->firstname.' '.$pilot->lastname.'</td>'; echo '<td>'.$aircraft->fullname.'</td>'; echo '<td>'.$stat->arricao.'</td>'; echo '<td>'.$stat->landingrate.'</td>'; echo '<td>'.date(DATE_FORMAT, strtotime($stat->submitdate)).'</td>'; echo '</tr>'; } ?> </table> </div> Now just link to it. I use: http://www.oneworldvs.net/index.php/TouchdownStats/top_landings/10 Quote
MrAmsterdam Posted July 2, 2010 Report Posted July 2, 2010 It is possible to do, I have the module bringing all the data back - you can extend the code to include some more stats and functions if you would like. You can do a print_r to see what is coming back in your tpl file for you to use in your stats equations. OK. i'll see if i can get this thing working. If i have it working, i'll post it here :-) Thanks guys Lucas Quote
MrAmsterdam Posted July 2, 2010 Report Posted July 2, 2010 OK. i am officially lost now. I want to show the average landing rate per pilot. Now i have created this query that is very basic and simple but it shows what i need. It's this: SELECT (phpvms_pilots.firstname), (phpvms_pilots.lastname) AS Name, avg(phpvms_pireps.landingrate) AS Average_Landingrate FROM phpvms_pilots INNER JOIN phpvms_pireps ON phpvms_pireps.pilotid = phpvms_pilots.pilotid GROUP BY phpvms_pilots.pilotid ORDER BY phpvms_pireps.landingrate DESC i was looking at the simpilot module but i really am lost and i don't even know where to start getting different data. Is it possible to execute the query above? how can i do that? thanks in advance.. again, :-) Lucas Quote
Administrators simpilot Posted July 3, 2010 Author Administrators Report Posted July 3, 2010 @maiochine To use the limit with your database table you will need to change the function within TouchdownStats.php -> This -> public function get_stats($howmany) { $query = "SELECT pilotid, code, flightnum, depicao, arricao, aircraft, landingrate, submitdate FROM `".TABLE_PREFIX."pireps` WHERE landingrate < '0' ORDER BY landingrate DESC LIMIT $howmany"; return DB::get_results($query); } Needs to change to -> public function get_stats($howmany) { $query = "SELECT * FROM flights WHERE TouchDownVertSpeedFt < '0' ORDER BY TouchDownVertSpeedFt DESC LIMIT $howmany"; return DB::get_results($query); } Quote
Administrators simpilot Posted July 3, 2010 Author Administrators Report Posted July 3, 2010 OK. i am officially lost now. I want to show the average landing rate per pilot. Now i have created this query that is very basic and simple but it shows what i need. It's this: SELECT (phpvms_pilots.firstname), (phpvms_pilots.lastname) AS Name, avg(phpvms_pireps.landingrate) AS Average_Landingrate FROM phpvms_pilots INNER JOIN phpvms_pireps ON phpvms_pireps.pilotid = phpvms_pilots.pilotid GROUP BY phpvms_pilots.pilotid ORDER BY phpvms_pireps.landingrate DESC i was looking at the simpilot module but i really am lost and i don't even know where to start getting different data. Is it possible to execute the query above? how can i do that? thanks in advance.. again, :-) Lucas Add this to TouchdownstatsData -> public function pilot_stats($pilotid) { $query = "SELECT pilotid, code, flightnum, depicao, arricao, aircraft, landingrate, submitdate FROM `".TABLE_PREFIX."pireps` WHERE landingrate < '0' AND pilotid = '$pilotid' ORDER BY landingrate DESC"; return DB::get_results($query); } public function pilot_average($pilotid) { $stats = self::pilot_stats($pilotid); $total = 0; $count = 0; foreach ($stats as $stat) { $total = $total + $stat->landingrate; $count++; } $average = $total / $count; return $average; } public function airline_average() { $stats = self::get_all_stats(); $total = 0; $count = 0; foreach ($stats as $stat) { $total = $total + $stat->landingrate; $count++; } $average = $total / $count; return $average; } Then where you want to show a pilots average do -> <?php echo 'Pilot average landing rate '.TouchdownStatsData::pilot_average('pilot#'); ?> and replace pilot# with the database id for the pilot you want to show the stat for - ie in pilot_public_profile it would be $userinfo->pilotid or for the VA's average -> <?php echo 'VA average landing rate '.TouchdownStatsData::airline_average(); ?> Quote
CPC900 Posted July 3, 2010 Report Posted July 3, 2010 In that code for the averages, how do I make it only show to 2 decimal places? Quote
maiochine Posted July 3, 2010 Report Posted July 3, 2010 @JEFF I tried your script but still didn't manage to get only TOP TEN look at the result !!! http://www.cargoitaliavirtual.com/index.php/TouchdownStats/top_landings/10 I tried your .tpl code but it doesn't work so Im using this code now <?php //simpilotgroup addon module for phpVMS virtual airline system // //simpilotgroup addon modules are licenced under the following license: //Creative Commons Attribution Non-commercial Share Alike (by-nc-sa) //To view full license text visit http://creativecommons.org/licenses/by-nc-sa/3.0/ // //@author David Clark (simpilot) //@copyright Copyright (c) 2009-2010, David Clark //@license http://creativecommons.org/licenses/by-nc-sa/3.0/ ?> <table width="100%" border="1" bordercolor="#FFFFFF" class="tablesorter" id="tabledlist"> <tr align="center" valign="middle" bgcolor="#0079B2"> <td>Pilot</td> <td>Aircraft</td> <td>Arrival Field</td> <td>Landing Rate</td> <td>Date Posted</td> </tr> <?php foreach($stats as $stat) { echo '<tr>'; echo '<td>'.$stat->PilotName.'</td>'; echo '<td>'.$stat->AircraftName.'</td>'; echo '<td>'.$stat->ArrivalIcaoName.'</td>'; echo '<td>'.$stat->TouchDownVertSpeedFt.'</td>'; echo '<td>'.$stat->datestamp.'</td>'; echo '</tr>'; } ?> </table> would you please help me out with this ... im trying to make a table similare to the one below please could you tell me how to do that ? I'm not a professional coder, of course the blured area contain Pilot Name date of lfight and departure/destination Quote
Administrators simpilot Posted July 3, 2010 Author Administrators Report Posted July 3, 2010 In that code for the averages, how do I make it only show to 2 decimal places? <?php echo 'Pilot average landing rate '.round(TouchdownStatsData::pilot_average('pilot#'), 2); ?> Quote
MrAmsterdam Posted July 4, 2010 Report Posted July 4, 2010 Simpilot, Thanks for the help! I'll try this and post back if everything is working :-) Regards Lucas Quote
MrAmsterdam Posted July 4, 2010 Report Posted July 4, 2010 So this is my touchdownstats file: <?php //simpilotgroup addon module for phpVMS virtual airline system // //simpilotgroup addon modules are licenced under the following license: //Creative Commons Attribution Non-commercial Share Alike (by-nc-sa) //To view full license text visit http://creativecommons.org/licenses/by-nc-sa/3.0/ // //@author David Clark (simpilot) //@copyright Copyright © 2009-2010, David Clark //@license http://creativecommons.org/licenses/by-nc-sa/3.0/ class TouchdownStatsData extends CodonData { public function pilot_stats($pilotid) { $query = "SELECT pilotid, code, flightnum, depicao, arricao, aircraft, landingrate, submitdate FROM `".TABLE_PREFIX."pireps` WHERE landingrate < '0' AND pilotid = '$pilotid' ORDER BY landingrate DESC"; return DB::get_results($query); } public function pilot_average($pilotid) { $stats = self::pilot_stats($pilotid); $total = 0; $count = 0; foreach ($stats as $stat) { $total = $total + $stat->landingrate; $count++; } $average = $total / $count; return $average; } public function airline_average() { $stats = self::get_all_stats(); $total = 0; $count = 0; foreach ($stats as $stat) { $total = $total + $stat->landingrate; $count++; } $average = $total / $count; return $average; } public function get_all_stats() { $query = "SELECT pilotid, code, flightnum, depicao, arricao, aircraft, landingrate, submitdate FROM `".TABLE_PREFIX."pireps` WHERE landingrate < '0' ORDER BY landingrate DESC"; return DB::get_results($query); } public function get_stats($howmany) { $query = "SELECT pilotid, code, flightnum, depicao, arricao, aircraft, landingrate, submitdate FROM `".TABLE_PREFIX."pireps` WHERE landingrate < '0' ORDER BY landingrate DESC LIMIT $howmany"; return DB::get_results($query); } } and the error message that i get is: Warning: Invalid argument supplied for foreach() in /home/seriousa/public_html/core/common/TouchdownStatsData.class.php on line 28 Warning: Division by zero in /home/seriousa/public_html/core/common/TouchdownStatsData.class.php on line 33 Pilot average landing rate 2 any idea's on this issue? Thanks again guys! Lucas Quote
Administrators simpilot Posted July 4, 2010 Author Administrators Report Posted July 4, 2010 @MrAmsterdam Without a link it is hard to tell, but my guess is that you are not passing a pilot id to the function so it does not know what to look for in the database and is returning an empty variable. Read my post here -> http://forum.phpvms.net/topic/2989-touchdownstats-10/page__view__findpost__p__21572 for this additional code and make sure you are calling the data as specified, I imagine the label 'pilot#' has not been replaced with a variable. Quote
MrAmsterdam Posted July 4, 2010 Report Posted July 4, 2010 Hi, I used this: <?php echo 'Pilot average landing rate '.round(TouchdownStatsData::pilot_average('1'), 2); ?> and then i get the error message. Maybe you can have a look at http://serious-airlines.com/index.php/pages/averagelandingrate there is the error message. I can't seem to understand where i am messing stuff up... :-( Sorry for being a pain in the a$$ Lucas Quote
Moderators mark1million Posted July 4, 2010 Moderators Report Posted July 4, 2010 @JEFF I tried your script but still didn't manage to get only TOP TEN look at the result !!! http://www.cargoitaliavirtual.com/index.php/TouchdownStats/top_landings/10 I tried your .tpl code but it doesn't work so Im using this code now <?php //simpilotgroup addon module for phpVMS virtual airline system // //simpilotgroup addon modules are licenced under the following license: //Creative Commons Attribution Non-commercial Share Alike (by-nc-sa) //To view full license text visit http://creativecommons.org/licenses/by-nc-sa/3.0/ // //@author David Clark (simpilot) //@copyright Copyright (c) 2009-2010, David Clark //@license http://creativecommons.org/licenses/by-nc-sa/3.0/ ?> <table width="100%" border="1" bordercolor="#FFFFFF" class="tablesorter" id="tabledlist"> <tr align="center" valign="middle" bgcolor="#0079B2"> <td>Pilot</td> <td>Aircraft</td> <td>Arrival Field</td> <td>Landing Rate</td> <td>Date Posted</td> </tr> <?php foreach($stats as $stat) { echo '<tr>'; echo '<td>'.$stat->PilotName.'</td>'; echo '<td>'.$stat->AircraftName.'</td>'; echo '<td>'.$stat->ArrivalIcaoName.'</td>'; echo '<td>'.$stat->TouchDownVertSpeedFt.'</td>'; echo '<td>'.$stat->datestamp.'</td>'; echo '</tr>'; } ?> </table> would you please help me out with this ... im trying to make a table similare to the one below please could you tell me how to do that ? I'm not a professional coder, of course the blured area contain Pilot Name date of lfight and departure/destination Looks like you got that from thomsonvirtual Quote
Administrators simpilot Posted July 4, 2010 Author Administrators Report Posted July 4, 2010 Hi, I used this: <?php echo 'Pilot average landing rate '.round(TouchdownStatsData::pilot_average('1'), 2); ?> and then i get the error message. Maybe you can have a look at http://serious-airlines.com/index.php/pages/averagelandingrate there is the error message. I can't seem to understand where i am messing stuff up... :-( Sorry for being a pain in the a$$ Lucas Check your pilots table to see if there is actually a pilot with pilotid 1 - Do you have an offset set or something? - This code works on my development site, my va, and all the other va's that have installed it. Try using pilot id 2. Quote
MrAmsterdam Posted July 4, 2010 Report Posted July 4, 2010 Check your pilots table to see if there is actually a pilot with pilotid 1 - Do you have an offset set or something? - This code works on my development site, my va, and all the other va's that have installed it. Try using pilot id 2. Simpilot, No, as far as i know i have a standard installation with a skin installed. i can't recall doing anything really special... when i go into the sql database and run this query i get a result back... select * from phpvms_pilots WHERE pilotid = 1; i get the name of the pilot that is using pilotid nr 1. (it's me :-) ) Regards, Lucas Quote
maiochine Posted July 4, 2010 Report Posted July 4, 2010 @JEFF Here's my TouchdownStats.php <?php //simpilotgroup addon module for phpVMS virtual airline system // //simpilotgroup addon modules are licenced under the following license: //Creative Commons Attribution Non-commercial Share Alike (by-nc-sa) //To view full license text visit http://creativecommons.org/licenses/by-nc-sa/3.0/ // //@author David Clark (simpilot) //@copyright Copyright (c) 2009-2010, David Clark //@license http://creativecommons.org/licenses/by-nc-sa/3.0/ class TouchdownStats extends CodonModule { public function index() { $this->set('stats', TouchdownStatsData::get_all_stats('10')); $this->show('touchdownstats/touchdownstats_index.tpl'); } public function top_landings($howmany) { $this->set('stats', TouchdownStatsData::get_stats($howmany)); $this->show('touchdownstats/touchdownstats_index.tpl'); } } If there's anything else please tell me ! Quote
MrAmsterdam Posted July 4, 2010 Report Posted July 4, 2010 Simpilot, I saw that i made a mistake.. evetything runs now! Thanks for the help!! Lucas Quote
CPC900 Posted July 5, 2010 Report Posted July 5, 2010 Just so you know, through trial and error, I used this code on on the header.tpl to reflect the VA's average stats to 2 decimal places. Thanks Jeff for all your help. Not sure if this is the 'clean' way of doing it, but: <strong>Avg Landing Rate: </strong><?php echo ''.round(TouchdownStatsData::airline_average('airline'), 2); ?> Quote
Jeff Posted July 5, 2010 Report Posted July 5, 2010 Yep, that's it. Great job bud, glad you were able to get it. Quote
CPC900 Posted July 5, 2010 Report Posted July 5, 2010 Sorry, I meant Dave(Simpilot), not Jeff. Sorry for forgetting who I was thanking. But thanks to everyone who helps on this forum anyway!! Quote
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.