PageRenderTime 48ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 0ms

/inc/stat.php

https://bitbucket.org/thejeshgn/kannu
PHP | 106 lines | 81 code | 19 blank | 6 comment | 1 complexity | 57af94ef64de950bfb0aac07767bc27f MD5 | raw file
Possible License(s): GPL-3.0
  1. <?php
  2. class STAT extends F3instance {
  3. function stat_update_batch(){
  4. $this->set('title','PostBox - Running stat update');
  5. $data_pull_messages = array();
  6. $post_count = 0;
  7. $user_count = 0;
  8. $POSTBOX_DB=F3::get('POSTBOX_DB');
  9. $data_pull_messages[] = "START of stat update process";
  10. #updating stats table
  11. $q = 'select count(post_id) as post_count from post_box';
  12. $POSTBOX_DB->sql($q);
  13. foreach (F3::get('POSTBOX_DB->result') as $row){
  14. $post_count = $row["post_count"];
  15. }
  16. $q = 'select count(distinct username) as user_count from post_box';
  17. $POSTBOX_DB->sql($q);
  18. foreach (F3::get('POSTBOX_DB->result') as $row){
  19. $user_count = $row["user_count"];
  20. }
  21. $q = 'insert into stats(post_count,user_count) values ('.$post_count.','. $user_count.')';
  22. $data_pull_messages[] = "inserting values";
  23. $POSTBOX_DB->exec($q);
  24. $data_pull_messages[] = "Working on pincodes now";
  25. #update pincode table
  26. $q = 'select distinct pincode from post_box';
  27. $POSTBOX_DB->sql($q);
  28. $db_pincode = array();
  29. foreach (F3::get('POSTBOX_DB->result') as $row){
  30. $p = $row["pincode"];
  31. $db_pincode[] = $p;
  32. }
  33. $new_pincode = array();
  34. foreach($db_pincode as $row){
  35. $q = 'select count(pincode) as pincode_exists from pin_code where pincode='.$row;
  36. $POSTBOX_DB->sql($q);
  37. foreach (F3::get('POSTBOX_DB->result') as $row1){
  38. $pincode_exists = $row1["pincode_exists"];
  39. $data_pull_messages[] = "pincode count= ".$pincode_exists;
  40. if ($pincode_exists > 0) {
  41. $data_pull_messages[] = "exists pincode= ".$row;
  42. }else{
  43. $new_pincode[] = $row;
  44. $data_pull_messages[] = "new pincode= ".$row;
  45. }
  46. }
  47. }
  48. //insert new pincodes
  49. foreach($new_pincode as $row){
  50. $POSTBOX_DB=F3::get('POSTBOX_DB');
  51. $q = 'insert into pin_code(pincode,total_post_boxes) values( :pincode , :total_post_boxes)';
  52. $data_pull_messages[] = "inserting pincode= ".$row;
  53. $POSTBOX_DB->exec($q,array(':pincode' => $row, ':total_post_boxes' =>0));
  54. }
  55. //update count
  56. $q = "select pincode, count(pincode) as pincode_count, lat, lan from post_box group by pincode";
  57. $POSTBOX_DB->sql($q);
  58. $update_array_pin = array();
  59. $update_array_count = array();
  60. $update_array_lat = array();
  61. $update_array_lan = array();
  62. foreach (F3::get('POSTBOX_DB->result') as $row2){
  63. $update_array_pin[] = $row2['pincode'];
  64. $update_array_count[] = $row2['pincode_count'];
  65. $update_array_lat[] = $row2['lat'];
  66. $update_array_lan[] = $row2['lan'];
  67. }
  68. $update_array = array_map(null, $update_array_pin, $update_array_count,$update_array_lat, $update_array_lan);
  69. foreach ($update_array as $row3){
  70. //var_dump($update_array);
  71. $data_pull_messages[] = "stat update pin= ".$row3[0];
  72. $data_pull_messages[] = "stat update count= ".$row3[1];
  73. $q = 'update pin_code set total_post_boxes=:total_post_boxes, center_lat=:center_lat, center_long=:center_long where pincode=:pin';
  74. $POSTBOX_DB->exec($q,array(':total_post_boxes' => $row3[1], ':pin' =>$row3[0],':center_lat' =>$row3[2],':center_long' =>$row3[3]));
  75. }
  76. //make one of the postboxes as center point for pincode
  77. $data_pull_messages[] = "END of stat update process";
  78. $this->set('LANGUAGE','en-US');
  79. $this->set('sub','sub_reverse_geocode.html');
  80. $this->set('data_pull_messages',$data_pull_messages);
  81. $out=$this->render('basic/layout.html');
  82. $this->set('sub_out_put',$out);
  83. $this->set('LANGUAGE','en-US');
  84. echo $this->render('basic/main.html');
  85. }
  86. }
  87. ?>