Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Kodowanie] Problem z wyświetlaniem
Kikert
post
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 15.09.2008

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


Cześć,
właśnie piszę dosyć złożony skrypt i mam problem z kodowaniem. Pierwotnie wszystko było napisane w formacie Windows 1250, teraz zamieniłem to na UTF-8.

Wystąpił problem. Dane pobierane z bazy danych są wyświetlane bez polskich znaków. Reszta znaków z pliku wyświetla się OK:

(IMG:http://wgrajfoto.pl/pokazfoto/img1010/przechwytywanie9efb.png)

W bazie mam ustawione kodowanie UTF-8 dla wszystkich tabel, pól i samej bazy. Dane są wpisane poprawnie, wyświetlają się w phpMyAdmin.

Kod pobierający dane z bazy:
  1. public function prepareLinks() { // Łaczy się z bazą za pomocą poniższej klasy
  2.  
  3. if ($this->menu) {
  4.  
  5. $this->links = $this->db->query("SELECT * FROM ###_menus_links WHERE `menu_id`='".Template::$modparams['menu']."'")->toArray();
  6.  
  7. }
  8.  
  9. return $this;
  10.  
  11. }

  1. class DBManager {
  2.  
  3. private static $object;
  4. protected $query;
  5. protected $result;
  6. public $num_rows;
  7.  
  8. public function __construct() { // Tutaj singletonem zwraca zawsze tą samą instancję
  9.  
  10. if (!self::$object) {
  11.  
  12. @ self::$object = new mysqli(Config::$db_host,Config::$db_user,Config::$db_password,Config::$db_name);
  13.  
  14. if (mysqli_connect_errno()) { Error::add('DBManager->__construct - Wystąpił błąd podczas lączenia z bazą danych'); }
  15.  
  16. return self::$object;
  17.  
  18. } else { return self::$object; }
  19.  
  20. }
  21.  
  22. public function query($query) { // Pobiera dane z bazy, wcześniej zamieniając ###_ w kodzie na prefix tabeli
  23.  
  24. $this->query = Validate::Query($query);
  25. @ $this->result = self::$object->query($this->query);
  26.  
  27. if ($this->result) {
  28.  
  29. $this->num_rows = $this->result->num_rows;
  30.  
  31. return $this;
  32.  
  33. } else { Error::add('DBManager->query - Baza danych nie zwróciła żadnego wyniku'); return $this; }
  34.  
  35. }
  36.  
  37. public function toArray() { // Tutaj robi z tego tablicę
  38.  
  39. if (!empty($this->result) && $this->num_rows != 0) {
  40.  
  41. for ($i = 0; $i < $this->num_rows; $i++) {
  42.  
  43. $array[] = $this->result->fetch_assoc();
  44.  
  45. }
  46.  
  47. } else { Error::add('DBManager->toArray - Tablica wyników jest pusta lub nie ma żadnych wyników'); return $this; }
  48.  
  49. return $array;
  50.  
  51. }
  52.  
  53. }


Napisałem inne rozszerzenie do tego system, które pobiera dane z bazy - w print_r też krzaki.

Pomocy! (IMG:style_emoticons/default/blinksmiley.gif)

Edit: Połączyłem się z bazą za pomocą mysqli i też mam krzaki!

Ten post edytował Kikert 23.10.2010, 14:40:07
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 6.10.2025 - 15:00