Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] problem z $this
pawel06281990
post 30.12.2021, 22:14:06
Post #1





Grupa: Zarejestrowani
Postów: 281
Pomógł: 0
Dołączył: 10.01.2014

Ostrzeżenie: (0%)
-----


Witam,

Nie wiem dla czego działa mi $this na class mam taki komunikat.

Fatal error: Uncaught Error: Using $this when not in object context in /home/twoj-host/web/test.twoj-host.eu/public_html/wp-content/plugins/wp-zmarli/inc/function/function_licz.php:14 Stack trace: #0 /home/twoj-host/web/test.twoj-host.eu/public_html/wp-content/plugins/wp-zmarli/admin/zmarli_list.php(72): liczenie::count_sql() #1 /home/twoj-host/web/test.twoj-host.eu/public_html/wp-content/plugins/wp-zmarli/inc/instalation.php(78): require_once('/home/twoj-host...') #2 /home/twoj-host/web/test.twoj-host.eu/public_html/wp-includes/class-wp-hook.php(303): wp_zmarli->list_zmarli() #3 /home/twoj-host/web/test.twoj-host.eu/public_html/wp-includes/class-wp-hook.php(327): WP_Hook->apply_filters() #4 /home/twoj-host/web/test.twoj-host.eu/public_html/wp-includes/plugin.php(470): WP_Hook->do_action() #5 /home/twoj-host/web/test.twoj-host.eu/public_html/wp-admin/admin.php(259): do_action() #6 {main} thrown in /home/twoj-host/web/test.twoj-host.eu/public_html/wp-content/plugins/wp-zmarli/inc/function/function_licz.php on line 14

W witrynie wystąpił błąd krytyczny. W wiadomości wysłanej na adres e-mail administratora strony umieszczono dodatkowe instrukcje


a tak wygląda function count_sql()

  1. class liczenie extends wp_zmarli {
  2.  
  3. function count_sql($name_db, $wartosc =''){
  4.  
  5. $count_sql = $this->wpdb->get_var("SELECT COUNT($wartosc) FROM ".$name_db."");
  6.  
  7. if(!$count_sql){
  8. $count_sql .='0';
  9. }
  10. return $count_sql;
  11. }


A tak wygląda główna classa

  1. $wp_zmarli = new wp_zmarli();
  2. class wp_zmarli {
  3. private $wpdb;
  4.  
  5. private $wyszukiwarka_table;
  6. private $wygasa_table;
  7. private $parafianin_table;
  8. private $info_cmentarz_table;
  9. private $zapal_znicz_table;
  10. private $zapal_znicz_ile_table;
  11. private $groby_table;
  12. private $historia_zmarli_table;
  13. private $zamow_msze_email_templates_table;
  14. private $users;
  15.  
  16.  
  17. function wp_zmarli(){
  18. global $wpdb;
  19. $this->wpdb = $wpdb;
  20. $this->wyszukiwarka_table = $wpdb->prefix . 'wyszukiwarka';
  21. $this->wygasa_table = $wpdb->prefix . 'wygasa';
  22. $this->parafianin_table = $wpdb->prefix . 'parafianin';
  23. $this->info_cmentarz_table = $wpdb->prefix . 'info_cmentarz';
  24. $this->zapal_znicz_table = $wpdb->prefix . 'zapal_znicz';
  25. $this->zapal_znicz_ile_table = $wpdb->prefix . 'zapal_znicz_ile';
  26. $this->groby_table = $wpdb->prefix . 'groby';
  27. $this->historia_zmarli_table = $wpdb->prefix . 'historia_zmarli';
  28. $this->zamow_msze_email_templates_table = $wpdb->prefix . 'zamow_msze_email_templates';
  29. $this->users_table = $wpdb->prefix . 'users';
  30.  
  31.  
  32. require_once(WPNW_DIR.'/inc/function/function_licz.php');
  33. }


I próbowałem już wszystkiego co robię źle??. Pomóżcie.
Go to the top of the page
+Quote Post
aras785
post 31.12.2021, 12:10:07
Post #2





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


Cześć,

ten include nie jest tam potrzebny i wgl. robisz go w złym miejscu biggrin.gif Dodaj jakieś typowanie bo wygląda to średnio.. szybka modyfikacja:

  1. <?php
  2. global $wpdb;
  3.  
  4. $wp_zmarli = new wp_zmarli($wpdb);
  5. $wp_zmarli->count_sql('nazwa_bazy', 'wartosc');
  6.  
  7. class wp_zmarli
  8. {
  9. private $wpdb;
  10. private $wyszukiwarka_table;
  11. private $wygasa_table;
  12. private $parafianin_table;
  13. private $info_cmentarz_table;
  14. private $zapal_znicz_table;
  15. private $zapal_znicz_ile_table;
  16. private $groby_table;
  17. private $historia_zmarli_table;
  18. private $zamow_msze_email_templates_table;
  19. private $users;
  20.  
  21.  
  22. public function __construct($wpdb)
  23. {
  24. $this->wpdb = $wpdb;
  25. $this->wyszukiwarka_table = $wpdb->prefix . 'wyszukiwarka';
  26. $this->wygasa_table = $wpdb->prefix . 'wygasa';
  27. $this->parafianin_table = $wpdb->prefix . 'parafianin';
  28. $this->info_cmentarz_table = $wpdb->prefix . 'info_cmentarz';
  29. $this->zapal_znicz_table = $wpdb->prefix . 'zapal_znicz';
  30. $this->zapal_znicz_ile_table = $wpdb->prefix . 'zapal_znicz_ile';
  31. $this->groby_table = $wpdb->prefix . 'groby';
  32. $this->historia_zmarli_table = $wpdb->prefix . 'historia_zmarli';
  33. $this->zamow_msze_email_templates_table = $wpdb->prefix . 'zamow_msze_email_templates';
  34. $this->users_table = $wpdb->prefix . 'users';
  35. }
  36.  
  37. public function count_sql($name_db, $wartosc =''){
  38.  
  39. $count_sql = $this->wpdb->get_var("SELECT COUNT($wartosc) FROM ".$name_db."");
  40.  
  41. if(!$count_sql){
  42. $count_sql .='0';
  43. }
  44. return $count_sql;
  45. }
  46. }


Ten post edytował aras785 31.12.2021, 12:10:26
Go to the top of the page
+Quote Post
pawel06281990
post 31.12.2021, 16:52:48
Post #3





Grupa: Zarejestrowani
Postów: 281
Pomógł: 0
Dołączył: 10.01.2014

Ostrzeżenie: (0%)
-----


Cytat(aras785 @ 31.12.2021, 12:10:07 ) *
Cześć,

ten include nie jest tam potrzebny i wgl. robisz go w złym miejscu biggrin.gif Dodaj jakieś typowanie bo wygląda to średnio.. szybka modyfikacja:
  1. <?php
  2. global $wpdb;
  3.  
  4. $wp_zmarli = new wp_zmarli($wpdb);
  5. $wp_zmarli->count_sql('nazwa_bazy', 'wartosc');
  6.  
  7. class wp_zmarli
  8. {
  9. private $wpdb;
  10. private $wyszukiwarka_table;
  11. private $wygasa_table;
  12. private $parafianin_table;
  13. private $info_cmentarz_table;
  14. private $zapal_znicz_table;
  15. private $zapal_znicz_ile_table;
  16. private $groby_table;
  17. private $historia_zmarli_table;
  18. private $zamow_msze_email_templates_table;
  19. private $users;
  20.  
  21.  
  22. public function __construct($wpdb)
  23. {
  24. $this->wpdb = $wpdb;
  25. $this->wyszukiwarka_table = $wpdb->prefix . 'wyszukiwarka';
  26. $this->wygasa_table = $wpdb->prefix . 'wygasa';
  27. $this->parafianin_table = $wpdb->prefix . 'parafianin';
  28. $this->info_cmentarz_table = $wpdb->prefix . 'info_cmentarz';
  29. $this->zapal_znicz_table = $wpdb->prefix . 'zapal_znicz';
  30. $this->zapal_znicz_ile_table = $wpdb->prefix . 'zapal_znicz_ile';
  31. $this->groby_table = $wpdb->prefix . 'groby';
  32. $this->historia_zmarli_table = $wpdb->prefix . 'historia_zmarli';
  33. $this->zamow_msze_email_templates_table = $wpdb->prefix . 'zamow_msze_email_templates';
  34. $this->users_table = $wpdb->prefix . 'users';
  35. }
  36.  
  37. public function count_sql($name_db, $wartosc =''){
  38.  
  39. $count_sql = $this->wpdb->get_var("SELECT COUNT($wartosc) FROM ".$name_db."");
  40.  
  41. if(!$count_sql){
  42. $count_sql .='0';
  43. }
  44. return $count_sql;
  45. }
  46. }


Wszystko ok, ale jak mam sprawdzanie w innym katalogu niż katalog główny mojej wtyczki, wszystkie select mam w pliku function_licz.php a wiem, że da się połączyć z głównym katalogiem, żeby pobierało mi informacje bazy danych to znaczy nazwy np. users, info_cmentarz itp. Ale nie mogę tego rozgryźć czemu nie działa.

Ten post edytował pawel06281990 31.12.2021, 18:09:19
Go to the top of the page
+Quote Post
Neutral
post 31.12.2021, 17:27:13
Post #4





Grupa: Zarejestrowani
Postów: 286
Pomógł: 46
Dołączył: 10.01.2016

Ostrzeżenie: (0%)
-----


Wykonaj akcję A();, pobierz dane i przekieruj na akcję B();.
Go to the top of the page
+Quote Post
pawel06281990
post 31.12.2021, 18:07:44
Post #5





Grupa: Zarejestrowani
Postów: 281
Pomógł: 0
Dołączył: 10.01.2014

Ostrzeżenie: (0%)
-----


Cytat(Neutral @ 31.12.2021, 17:27:13 ) *
Wykonaj akcję A();, pobierz dane i przekieruj na akcję B();.


cały czas próbuje to zrobić

mam coś takiego

tak wygląda główny plik

  1. <?php
  2.  
  3. /*
  4.  * Instalator wtyczki | wp_zmarli
  5.  */
  6. global $wpdb;
  7.  
  8. $wp_zmarli = new wp_zmarli($wpdb);
  9.  
  10. class wp_zmarli {
  11.  
  12.  
  13. public $wpdb;
  14. public $wyszukiwarka_table;
  15. public $wygasa_table;
  16. public $parafianin_table;
  17. public $info_cmentarz_table;
  18. public $zapal_znicz_table;
  19. public $zapal_znicz_ile_table;
  20. public $groby_table;
  21. public $historia_zmarli_table;
  22. public $zamow_msze_email_templates_table;
  23. public $users;
  24.  
  25.  
  26. public function __construct($wpdb){
  27.  
  28. $this->wpdb = $wpdb;
  29. $this->wyszukiwarka_table = $wpdb->prefix.'wyszukiwarka';
  30. $this->wygasa_table = $wpdb->prefix.'wygasa';
  31. $this->parafianin_table = $wpdb->prefix.'parafianin';
  32. $this->info_cmentarz_table = $wpdb->prefix.'info_cmentarz';
  33. $this->zapal_znicz_table = $wpdb->prefix.'zapal_znicz';
  34. $this->zapal_znicz_ile_table = $wpdb->prefix.'zapal_znicz_ile';
  35. $this->groby_table = $wpdb->prefix.'groby';
  36. $this->historia_zmarli_table = $wpdb->prefix.'historia_zmarli';
  37. $this->zamow_msze_email_templates_table = $wpdb->prefix.'zamow_msze_email_templates';
  38. $this->users_table = $wpdb->prefix . 'users';
  39.  
  40. add_action('admin_menu', array( &$this, 'zmarli_add_menu' ));
  41. add_action('admin_head', array( &$this,'zmarli_load_textdomain') );
  42. add_action('admin_head', array( &$this,'include_requeried_scripts'));
  43. add_action('wp_head',array( &$this,'function_captchas'));
  44. add_action('admin_enqueue_scripts',array( &$this,'add_scripts_and_styles'));
  45.  
  46.  
  47. }
  48. public function include_requeried_scripts(){
  49. wp_enqueue_script('wp-color-picker');
  50. wp_enqueue_style( 'wp-color-picker' );
  51. }
  52.  
  53.  
  54. public function zmarli_add_menu(){
  55. add_menu_page(__('Zmarli', 'wp_zmarli'), __('Zmarli', 'wp_zmarli'), 'administrator', 'zmarli_main_page',array( &$this, 'zmarli_main_page'),ZMARLI_PATH.'assets/images/znicz.png',89);
  56. add_submenu_page( 'zmarli_main_page', 'Dodaj Zmarłych', __('Dodaj zmarłych', 'wp_zmarli'), 'administrator', '_add_zmarli', array( &$this, '_add_zmarli'));
  57. add_submenu_page( 'zmarli_main_page', 'Lista zmarłych', __('Lista zmarłych', 'wp_zmarli'), 'administrator', 'list_zmarli', array( &$this, 'list_zmarli'));
  58. add_submenu_page( 'zmarli_main_page', 'Opinie/błądy', __('Opinie/błądy', 'zmarli'), 'administrator', 'opinie_blad', array( &$this, 'opinie_blad'));
  59. add_submenu_page( 'zmarli_main_page', 'Zapalone znicze', __('Zapalone znicze ', 'zmarli'), 'administrator', 'zapal_znicz', array( &$this, 'zapal_znicz'));
  60. add_submenu_page( 'zmarli_main_page', __('Historia', 'wp_zmarli'), __('Historia', 'wp_zmarli'), 'administrator', 'zmarli_historia', array( &$this, 'zmarli_historia'));
  61. add_submenu_page( 'zmarli_main_page', __('Templatki e-mail opinie', 'wp_zmarli'), __('Templatki e-mail opinie', 'wp_zmarli'), 'administrator', 'zmarli_template', array( &$this, 'zmarli_template'));
  62. add_submenu_page( '', __('Edytuj Templatki e-mail opinie', 'wp_zmarli'), __('Edytuj Templatki e-mail opinie', 'wp_zmarli'), 'administrator', 'zmarli_edytuj_template', array( &$this, 'zmarli_edytuj_template'));
  63. add_submenu_page( 'zmarli_main_page', __('Ustawienia', 'wp_zmarli'), __('Ustawienia', 'wp_zmarli'), 'administrator', 'zmarli_setting',array( &$this, 'zmarli_setting'));
  64. add_submenu_page( 'zmarli_main_page', 'Pozostałe moduły', __('Pozostałe Moduły', 'wp_zmarli'), 'administrator', 'zmarli_moduly',array( &$this, 'zmarli_moduly'));
  65.  
  66. }
  67.  
  68.  
  69.  
  70. public function zmarli_main_page(){
  71. include_once WPNW_DIR.'/admin/zmarli_admin.php';
  72.  
  73. }
  74. public function _add_zmarli(){
  75. include_once WPNW_DIR.'/admin/zmarli_add.php';
  76.  
  77. }
  78.  
  79. public function list_zmarli(){
  80. require_once WPNW_DIR.'/admin/zmarli_list.php';
  81.  
  82. }
  83.  
  84. public function opinie_blad(){
  85. include_once WPNW_DIR.'/admin/zmarli_opinie_blady.php';
  86.  
  87. }
  88.  
  89.  
  90.  
  91. public function zapal_znicz(){
  92. include_once WPNW_DIR.'/admin/zmarli_zapalone_znicze.php';
  93. }
  94.  
  95. public function powiadomienia(){
  96. include_once WPNW_DIR.'/admin/zmarli_powiadomienia.php';
  97.  
  98. }
  99.  
  100. public function zmarli_historia(){
  101. include_once WPNW_DIR.'/admin/zmarli_historia.php';
  102.  
  103. }
  104.  
  105.  
  106. public function zmarli_template(){
  107. include_once WPNW_DIR.'/admin/zmarli_templatka_email.php';
  108. }
  109.  
  110.  
  111. public function zmarli_edytuj_template(){
  112. include_once WPNW_DIR.'/admin/zmarli_edytuj_templatki.php';
  113. }
  114.  
  115. public function zmarli_setting(){
  116. include_once WPNW_DIR.'/admin/zmarli_setting.php';
  117. }
  118.  
  119. public function zmarli_moduly(){
  120. include_once WPNW_DIR.'/admin/zmarli_moduly.php';
  121. }
  122.  
  123.  
  124. }
  125.  
  126. if(is_admin()){
  127. include(WPNW_DIR.'/inc/function/function_licz.php');
  128. $check_w_base = new check_w_base($wp_zmarli);
  129. }
  130.  
  131.  




a tak wygląda plik, do którego chce przekierować działanie $this

  1. <?php
  2.  
  3. /*
  4.  * Plik sprawdzający w bazie danych czy dane w danej tabeli się zgadzają .
  5.  */
  6.  
  7.  
  8.  
  9. class check_w_base extends wp_zmarli
  10. {
  11.  
  12. public function __construct($wpdb){
  13. $this->wpdb=$wpdb;
  14.  
  15. }
  16.  
  17. public function count_sql($name_db, $wartosc ='',$conditions=''){
  18. global $wpdb;
  19. $where = $conditions ? " WHERE ".$conditions : "";
  20. $count_sql = $this->wpdb->get_var("SELECT COUNT($wartosc) FROM ".$name_db.$where);
  21.  
  22. if($count_sql <=''){
  23. $count_sql .='0';
  24. }
  25. return $count_sql;
  26. }
  27.  
  28.  
  29.  
  30. function paginacja_zmarli($name_db,$limit, $wartosc ='', $where='', $sort=''){
  31. $query = "SELECT $wartosc FROM ".$name_db." $where ORDER BY $sort ASC";
  32. $dataa = new ZM_Paginate($limit);
  33. $data = $dataa->initialize($query,@$_REQUEST['paged']);
  34. $html ='<div class="tablenav-pages">';
  35. $dataa->paginate();
  36. $html .='</div>';
  37.  
  38. return $data; $dataa; $html;
  39. }
  40.  
  41.  
  42. function result_get_row($name_db, $wartosc ='', $conditions=''){
  43. $where = $conditions ? " WHERE ".$conditions : "";
  44. $result_get_row = $wpdb->get_row("SELECT $wartosc FROM ".$name_db.$where);
  45.  
  46. return $result_get_row;
  47. }
  48.  
  49.  
  50.  
  51.  
  52. function select_result($name_baza,$conditions=''){
  53. global $wpdb;
  54. $where = $conditions ? " WHERE ".$conditions : "";
  55. $select = $wpdb->get_results("SELECT * FROM ".$name_baza.$where);
  56.  
  57. return $select;
  58. }
  59.  
  60.  
  61. }
  62.  
  63.  
  64. ?>


i nadal nie działa.
Go to the top of the page
+Quote Post
viking
post 31.12.2021, 18:34:00
Post #6





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Musisz wywołać gdzieś check_w_base zamiast wp_zmarli


--------------------
Go to the top of the page
+Quote Post
pawel06281990
post 31.12.2021, 19:08:11
Post #7





Grupa: Zarejestrowani
Postów: 281
Pomógł: 0
Dołączył: 10.01.2014

Ostrzeżenie: (0%)
-----


Cytat(viking @ 31.12.2021, 18:34:00 ) *
Musisz wywołać gdzieś check_w_base zamiast wp_zmarli


Masz na myśli że mam wywołać to tak


  1. check_w_base::count_sql($this->info_cmentarz_table, '*','').')



czy tak


  1. $check_w_base->count_sql($this->info_cmentarz_table, '*','').')



Mi działa ta metoda


  1. check_w_base::count_sql($this->info_cmentarz_table, '*','').')
Go to the top of the page
+Quote Post
viking
post 31.12.2021, 19:27:22
Post #8





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Nie, najprawdopodobniej zamiast tego
global $wpdb;

$wp_zmarli = new wp_zmarli($wpdb);


--------------------
Go to the top of the page
+Quote Post
Neutral
post 31.12.2021, 19:42:04
Post #9





Grupa: Zarejestrowani
Postów: 286
Pomógł: 46
Dołączył: 10.01.2016

Ostrzeżenie: (0%)
-----


  1. <?php
  2.  
  3. Class a {
  4. public $ax=1;
  5. public function __construct() {
  6. $this->ax=6;
  7. return $this;
  8. }
  9. }
  10.  
  11. Class b extends a {
  12. public function __construct() {
  13. echo $this->ax;
  14. echo (new a())->ax;
  15. }
  16. }
  17. (new a());
  18. $c=new a();
  19. //echo $c;
  20. $v=new b();
  21. ?>


Prześledź.
Go to the top of the page
+Quote Post
Tomplus
post 1.01.2022, 10:45:02
Post #10





Grupa: Zarejestrowani
Postów: 1 836
Pomógł: 226
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


Paweł,
spójrz na twój komunikat z błędem (co prawda już go nie masz jak czytam) ale jasno ci mówi, że $this nie jest obiektem. Druga rzecz, wskazałeś tam linię z błędami, ale nam nie podałeś od razu która to linia w kodzie w głównym wątku. Możemy tylko zgadywać, gdzie jest problem.

Tak jak ktoś powiedział, używaj typowania, bardzo wyjaśnia czytelność kodu oraz nazywanie zmiennych np:
  1. public array $tablicaWyszukiwan; //$wyszukiwarka - czego?
  2. public array $wygasa; //Co wygasa?
  3. public array $listaParafian;
  4. public array $daneCmentrza;
  5. public array $listaZapalonychZniczy;
  6. public array $iloscZapalonychZniczy; //czym się to różni od poprzedniego?
  7. public array $listaGrobow;
  8. public array $historiaZmarlych;
  9. public array $zapowiedziEmailZamawianychMszy;
  10. private array $users;



w PHP dobrym obyczajem jest stosowanie camelCase przy nazywaniu zmiennych i metod.

private/public/protected oznacza zasięg tych zmiennyc, więc warto z nich korzystać.
Go to the top of the page
+Quote Post
Tomplus
post 1.01.2022, 10:45:02
Post #11





Grupa: Zarejestrowani
Postów: 1 836
Pomógł: 226
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


Paweł,
spójrz na twój komunikat z błędem (co prawda już go nie masz jak czytam) ale jasno ci mówi, że $this nie jest obiektem. Druga rzecz, wskazałeś tam linię z błędami, ale nam nie podałeś od razu która to linia w kodzie w głównym wątku. Możemy tylko zgadywać, gdzie jest problem.

Tak jak ktoś powiedział, używaj typowania, bardzo wyjaśnia czytelność kodu oraz nazywanie zmiennych np:
  1. public array $tablicaWyszukiwan; //$wyszukiwarka - czego?
  2. public array $wygasa; //Co wygasa?
  3. public array $listaParafian;
  4. public array $daneCmentrza;
  5. public array $listaZapalonychZniczy;
  6. public array $iloscZapalonychZniczy; //czym się to różni od poprzedniego?
  7. public array $listaGrobow;
  8. public array $historiaZmarlych;
  9. public array $zapowiedziEmailZamawianychMszy;
  10. private array $users;



w PHP dobrym obyczajem jest stosowanie camelCase przy nazywaniu zmiennych i metod.

private/public/protected oznacza zasięg tych zmiennyc, więc warto z nich korzystać.
Go to the top of the page
+Quote Post
pawel06281990
post 3.01.2022, 13:59:01
Post #12





Grupa: Zarejestrowani
Postów: 281
Pomógł: 0
Dołączył: 10.01.2014

Ostrzeżenie: (0%)
-----


I nadal mam ten problem z $this a zrobiłem tak jak mówiliście.

Tak wygląda plik sprawdzający czy data minęła.

  1. class sprawdzanie extends wp_zmarli{
  2.  
  3.  
  4.  
  5. public function __construct() {
  6.  
  7. $this->wpdb;
  8. }
  9.  
  10.  
  11. public function sprawdz_zapalone_znicze(){
  12. global $wpdb;
  13. $res1 = $wpdb->get_results("SELECT swieczki_czas, Id_wyszukiwarka FROM $this->'zapal_znicz_table' WHERE aktywuj_czas='1' ORDER BY swieczki_czas ASC");
  14. if ($res1) {
  15. foreach ($res1 as $data) {
  16. if ($data->swieczki_czas < date("Y-m-d H:i:s", time()) && $data->swieczki_czas != "0000-00-00 00:00:00") {
  17. $wpdb->query("UPDATE ".$this->wyszukiwarka_table." SET ile_zapalono = ile_zapalono -1, ile_zniczy = ile_zniczy +1 WHERE Id='".$data->Id_wyszukiwarka ."'");
  18. $wpdb->delete($this->zapal_znicz_table, array('swieczki_czas' => $data->swieczki_czas));
  19. }
  20. }
  21. }
  22.  
  23. }
  24.  
  25. public function waznosc_wygasa_pokladne(){
  26. global $wpdb;
  27. $res2 = $wpdb->get_results("SELECT wyszukiwarka.*, wygasa.zmarly_id FROM $this->wyszukiwarka_table wyszukiwarka
  28. LEFT JOIN $this->wygasa_table wygasa ON wygasa.zmarly_id=wyszukiwarka.Id
  29. WHERE wyszukiwarka.oplata_pokladne<>'' AND if(length(wyszukiwarka.oplata_pokladne)=4,concat('31/12/',wyszukiwarka.oplata_pokladne),concat(replace(substring(wyszukiwarka.oplata_pokladne, 7, 4),'/','0'),'/',replace(substring(wyszukiwarka.oplata_pokladne, 4, 2),'/','0'),'-',replace(substring(wyszukiwarka.oplata_pokladne, 1, 2),'/','0')))<=curdate()
  30. ");
  31. var_dump($res2);
  32. if ($res2) {
  33.  
  34. foreach ($res2 as $data) {
  35.  
  36. if ($data->zmarly_id) {
  37. $wpdb->query("UPDATE $this->wygasa_table SET imie='".$data->imie."', nazwisko='".$data->nazwisko."', data_urodzienia = '".$data->data_urodzienia."', data_smierci='".$data->data_smierci."', sektor='".$data->sektor."', rzad='".$data->rzad."', pole_grobu='".$data->pole_grobu."', oplata_pokladne='".$data->oplata_pokladne."', zmarly_id='".$data->Id."', status='wygasa' WHERE zmarly_id='".$data->Id."'");
  38. }else{
  39. $wpdb->query("INSERT INTO $this->wygasa_table SET imie='".$data->imie."', nazwisko='".$data->nazwisko."', data_urodzienia = '".$data->data_urodzienia."', data_smierci='".$data->data_smierci."', sektor='".$data->sektor."', rzad='".$data->rzad."', pole_grobu='".$data->pole_grobu."', oplata_pokladne='".$data->oplata_pokladne."', zmarly_id='".$data->Id."', status='wygasa' ");
  40. }
  41. }
  42. }
  43.  
  44. }
  45.  
  46. }
  47. (new wp_zmarli());
  48. $c=new wp_zmarli();
  49. //echo $c;
  50. $sprawdzanie=new sprawdzanie();


EDIT:

Zadziałało mi to tak jak chciałem trochę się pomęczyłem, ale mam teraz jak powinno być.

A to rozwiązanie które znalazłem
  1. $sprawdzanie=new sprawdzanie($wp_zmarli);
  2. echo $sprawdzanie->waznosc_wygasa_pokladne();

i dodałem to
  1. protected $wpdb;//zawardość całej bazy wordpressa
  2. public $wyszukiwarka_table; //table z Wyszukiwaniem zmarłych
  3. public $wygasa_table; //Tabela wygasające pokładne
  4. public $parafianin_table; // tabela z parafianinem
  5. public $info_cmentarz_table;// informacje dla administratora i użytkownika
  6. public $zapal_znicz_table; // zapalone znicze
  7. public $zapal_znicz_ile_table; //ile zniczy zostało zapalonych na daną osobe
  8. public $groby_table; // zdjęcia z pomnikami
  9. public $historia_zmarli_table; //historia operacji na wyszukiwarce
  10. public $zamow_msze_email_templates_table; // tamplatki e-mail
  11. private $users; // baza z uzytkonikami
  12.  
  13. public function __construct() {
  14.  
  15. global $wpdb;
  16. $this->wpdb = $wpdb;
  17. $this->wyszukiwarka_table = $wpdb->prefix.'wyszukiwarka';
  18. $this->wyszukiwarka_table = $wpdb->prefix.'wyszukiwarka';
  19. $this->wygasa_table = $wpdb->prefix.'wygasa';
  20. $this->parafianin_table = $wpdb->prefix.'parafianin';
  21. $this->info_cmentarz_table = $wpdb->prefix.'info_cmentarz';
  22. $this->zapal_znicz_table = $wpdb->prefix.'zapal_znicz';
  23. $this->zapal_znicz_ile_table = $wpdb->prefix.'zapal_znicz_ile';
  24. $this->groby_table = $wpdb->prefix.'groby';
  25. $this->historia_zmarli_table = $wpdb->prefix.'historia_zmarli';
  26. $this->zamow_msze_email_templates_table = $wpdb->prefix.'zamow_msze_email_templates';
  27. $this->users_table = $wpdb->prefix . 'users';
  28. }


I mi zadzialało.


Ten post edytował pawel06281990 3.01.2022, 15:15:08
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2024 - 11:26