Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL]Data truncated dla polskich znakow
Wolfie
post
Post #1





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


Witam,


Zdefiniowalem pole enum('dobry', 'zły') w bazie danych, kiedy wprowadzam wartosc "dobry" skrypt działa poprawnie, gdy wprowadzam wartosc "zły" wyskakuje błąd

Cytat
Data truncated for column 'align' at row 1


Wiec jedynym wytłumaczniem jest to ze spowodowane jest to przez polskie znaki.
Szukam rozwiazania juz od 3h na tym forum, w googlach, na zagranicznych forach i nic......
Moze ktos w koncu pomoc (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Dodam ze charset dla bazy danych i tabeli jest utf8 collation utf8_polish_ci wiec teoretycznie powinno wszystko działać.....

Probowalem tez uzyc polecenia IGNORE ale wtedy wogole komorka tebali 'align' nie jest uzupełniana......
Dodałem tez tag meta :
  1. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />;

bez uzycia polecenia IGNORE ale ten sam błąd....
Ludzie pomozcie bo szewskiej pasji dostaje (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif)

Ten post edytował Wolfie 4.05.2009, 17:45:28
Go to the top of the page
+Quote Post
Darti
post
Post #2





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


Spróbuj zaraz po połączeniu z bazą wysłać zapytanie mysql_query('SET NAMES utf8');
Go to the top of the page
+Quote Post
Wolfie
post
Post #3





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


Zadziałało ale zamiast polskiej literki "ł" jest "?".....

Dzieki Ci ze sie zainteresowales tym tematem bo szperam juz od 5h....


No i tez jest błąd w wyswietlaniu koloru bo uzywam do tego takiej konstrukcji :

  1. <?php
  2. $table = str_replace('zły', '<font color="red">zły</font>',$table);
  3. $table = str_replace('dobry', '<font color="darkgreen">dobry</font>', $table);
  4. ?>


Dla "dobry" wszystko gra i kolor sie zmienia , dla "zły" kolor pozostaje czarny i pojawia sie wspomniany "?"

No ale to pomniejszy problem, najwazniejsze zeby poprawnie wyswietlalo sie "ł"

W phpMyAdminie komorka tabeli wyswietla sie prawidłowo z polska literka.....
No i w php.ini mam ustawione takie dane :
Cytat
; PHP's built-in default is text/html
default_mimetype = "text/html"
default_charset = "utf-8"
character_set_server = utf8


To tak dla jasnosci (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) , wiec jak teraz poprawic "?" na prawidłową literke ?

Ten post edytował Wolfie 4.05.2009, 18:55:33
Go to the top of the page
+Quote Post
Darti
post
Post #4





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


sprawdź, czy przeglądarka faktycznie wyświetla w utf-8 i czy wysyłając formularz wysyłasz go metodą post
Go to the top of the page
+Quote Post
Wolfie
post
Post #5





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


Domyślny zestaw znakow dla firefox utf-8

formularz :

  1. <?php
  2. <form action="char_transact.php" name="theform" method="post">
  3. ?>


Odbieranie zmiennych w kolejnym skrypcie :

  1. <?php
  2. foreach ($_POST as $key => $value) {
  3.  $$key = $value;
  4. }
  5. ?>


Więc powyższe warunki sa spelnione, zrobilem nowy wpis postaci do bazy - mimo to "?" wystepuje....
Dodam jeszcze ze pisze w notepad++ i skrypty sa zakodowane w utf-8 bez BOM...

Ktos ma jakies pomysły ?

(IMG:http://forum.php.pl/style_emoticons/default/sciana.gif)

Moze jeszcze dodam ze natej samej stronie mam wartosci wczytywane z innej tabeli sql i tam polskie znaki w tym takze "ł" tez sie wyswietla prawidlowo, gdzie moze byc przyczyna w takim wypadku ? w str_replace ?

Ten post edytował Wolfie 4.05.2009, 20:02:41
Go to the top of the page
+Quote Post
Darti
post
Post #6





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


Metoda porównywania napisów dla kolumny align (tak dla pewności) - utf8
Więcej nic nie widzę ...

Ten post edytował Darti 5.05.2009, 19:28:37
Go to the top of the page
+Quote Post
Wolfie
post
Post #7





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


no niestety jest ustawione na utf8, kolumna align rowniez utf8 collation utf8_polish_ci (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif)

Zreszta tak jak wspominalem, w MySQL Administratorze oraz w phpMyAdminie wyswietla sie poprawnie "zły"

Ten post edytował Wolfie 5.05.2009, 20:58:34
Go to the top of the page
+Quote Post

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: 3.10.2025 - 09:19