Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Smarty, zdublowane zapytanie.
kamilos12
post 26.12.2010, 22:02:56
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 20.03.2010

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


Witam, pisząc stroną opartą na systemie szablonów smarty. Napotkałem się na pewien problem, otóż chcę zmienić wartość "view" w tabeli "movie", "view" jest to liczba wyświetleń danego filmu. Oto kawałek strony:

  1. public function movie($id) {
  2. global $config, $mysql, $tpl;
  3.  
  4. $this->id = $id;
  5. $mysql->query("SELECT * FROM {$config['dbprefix']}movie WHERE id = '{$this->id}'");
  6. $movie = $mysql->fetch_array();
  7.  
  8. if($mysql->num_rows() > 0) {
  9. $values = array('view' => $movie['view'] + 1, 'last_view' => date('Y-m-d H:i:s'));
  10. $mysql->update($config['dbprefix'].'movie', $values, "id = '{$this->id}'");
  11.  
  12. $mysql->query("SELECT * FROM {$config['dbprefix']}movie WHERE id = '{$this->id}'");
  13. $movie = $mysql->fetch_array();
  14.  
  15. $config['seo_title'] = $movie['title'];
  16. $config['seo_description'] = $movie['description'];
  17.  
  18. $values = array('movie' => $movie);
  19. $tpl->assign($values, 'single-movie');
  20.  
  21. $this->related($movie['title'], $movie['id']);
  22. $tpl->assign($values, 'add-comment');
  23. $this->comments($this->id);
  24.  
  25.  
  26. } else {
  27. $values = array('msg' => 'Podany film nie istnieje.');
  28. $tpl->assign($values, 'default');
  29. }
  30. }


Cały czas zamiast dodać 1 dodaje 2 :/ Wygląda na to że skrypt wykonuje się dwa razy, zanim wczyta się szablon :/

Z góry dzięki za pomoc.
Go to the top of the page
+Quote Post
agmakonts
post 27.12.2010, 11:50:04
Post #2





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 20.08.2008
Skąd: Gliwice

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


A jak wywołujesz tą funkcje? bo wygląda na to że ona jest wywoływana 2 razy.


--------------------
Folio :: Blog
Go to the top of the page
+Quote Post
kamilos12
post 27.12.2010, 14:10:27
Post #3





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 20.03.2010

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


W index.php
Mam coś takiego:

  1. // MODULES LOAD
  2. $module = preg_replace('/[^0-9A-Za-z\-\_]+/', '', $_GET['module']);
  3. if(file_exists('modules/class.'.$module.'.php')) {
  4. include 'modules/class.'.$module.'.php';
  5. $module = new $module;
  6. $module->load_module();
  7. } else {
  8. include 'modules/class.welcome.php';
  9. $module = new Welcome;
  10. $module->welcome_content();
  11. }
  12. $GetModule = ob_get_contents();


potem góra szablonu

  1. echo $GetModule;


dół szablonu

Dodam że np. dodawanie komentarzy działa dobrze, dodaje się tylko jeden rekord ;/

Ładowanie funkcji:
  1. public function load_module() {
  2. switch($_GET['name']) {
  3. case 'welcome': $this->welcome(); break;
  4. case 'movie': $this->movie($_GET['id']); break;
  5. case 'category': $this->category($_GET['id']); break;
  6. case 'search': $this->search(); break;
  7. case 'rules': $this->rules(); break;
  8. case 'contact': $this->contact(); break;
  9. }
  10. }


Problem rozwiązany smile.gif

W pliku header.tpl musiałem usunąć:

  1. <link rel="shortcut icon" href="" type="image/x-icon" />


Nie wiem dlaczego akurat to robiło takie zamieszanie ;/ Ponad 1 dzień się nad tym głowiłem, a to taka głupota ;/

Ten post edytował kamilos12 27.12.2010, 12:00:45
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: 18.07.2025 - 00:42