Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Smarty, zdublowane zapytanie.
Forum PHP.pl > Forum > PHP
kamilos12
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.
agmakonts
A jak wywołujesz tą funkcje? bo wygląda na to że ona jest wywoływana 2 razy.
kamilos12
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 ;/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.