![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 5.04.2006 Ostrzeżenie: (20%) ![]() ![]() |
Witam.
Wiem ,że problem ten jest bardzo często opisywany tutaj na forum.Szukałem w róznych postach odpowiedzi ale nie pomogły mi one rozwiązać mojego problemu (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Kłopot tkwi w tym ,że zamiast polskich znaków w przeglądarce pojawiają mi się znaki zapytania w pobranych z bazy danych MySQL wyrazach. Ustawiłem kodowanie na latin2 w pliku konfiguracyjnym my.ini (default-character-set=latin2) i tak samo w pliku php.ini (default_charset = "iso-8859-2"). W kodzie php próbowałem wykorzystać instrukcje SET NAMES i dalej lipa. Mam za zadanie odczytac w przegladarce dane z tabeli Ksiazki w mojej bazie i wszystko jest ok, tylko te nieszczesne polskie znaki. Proszę o wsparcie i z góry dzieki. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"> </head> <body> <?php if (!$db_lnk =@mysql_connect("localhost","*****","*******")){ echo('Wystąpił błąd podczas połączenia z serwerem mysql...<br>'); exit; } if (!@mysql_select_db('test')){ echo('Wystapil blad podczas wyboru bazy danych: test<br>'); @mysql_close(); exit; } $query = "SET NAMES 'latin2'"; $query = "SELECT * FROM Ksiazki"; if (!$result = mysql_query($query, $db_lnk)){ echo('Wystapil blad: nieprawidlowe zapytanie...<br>'); @mysql_close(); exit; } ?> <table> <tr> <td>Id</td> <td>Tytuł</td> <td>Rok wydania</td> <td>Cena</td> </tr> <?php while($row = mysql_fetch_row($result)){ echo("<tr>"); echo("<td>$row[0]</td>"); echo("<td>$row[2]</td>"); echo("<td>$row[4]</td>"); echo("<td>$row[6]</td>"); echo("</tr>"); } ?> </table> <?php if(!@mysql_close()){ echo('Wystapil blad podczaszamykania polaczenia z serwerem MySQL...<br>'); } ?> </body> </html> |
|
|
![]() |
![]() ![]()
Post
#2
|
|
Administrator serwera Grupa: Developerzy Postów: 521 Pomógł: 13 Dołączył: 2.04.2004 Skąd: 52°24' N 16°56' E Ostrzeżenie: (0%) ![]() ![]() |
Zmień kodowanie apache na iso-8859-2, albo w mysql ustaw metodę porównywania napisów na latin2_general_ci (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .
P.S. Proszę o używanie odpowiedniego bbcode (IMG:http://forum.php.pl/style_emoticons/default/angrysmiley.gif) . |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 17 Dołączył: 13.03.2006 Skąd: Jaworze Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 472 Pomógł: 7 Dołączył: 7.12.2005 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Ja także korzystam w UTF8 na bazach MyISAM.
Kodowanie bazy utf8, porównywanie utf8_general_ci, set names utf8 i meta charset utf8. Wcześniej jednak korzystałem z właśnie latin2 i również działało poprawnie. Sprawdź dokładnie wykonanie SET NAMES. Spróbuj bez ''. :/ BTW Tak wygląda kod? Bo jeśli tak to wykonuje query=SELECT a nie SET NAMES Ten post edytował cadavre 3.08.2006, 20:23:38 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 5.04.2006 Ostrzeżenie: (20%) ![]() ![]() |
Dzięki za wsparcie.Coś pokombinuje i może sie uda.W końcu dla chcącego nic trudnego (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)
Wprowadziłem poprawkę w kodzie: $queryNames = "SET NAMES 'latin2'"; mysql_query($queryNames); i zadziałało (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Wielkie dzięki mistrzowie!!! |
|
|
![]()
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Zawsze jak masz problemy z baza to sprawdzaj jak kodowanie ma klient, baza i jakie kodowanie ma fetch.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 136 Pomógł: 0 Dołączył: 17.11.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Czy ten problem masz na serwerze na własnym kompie czy już po wysłaniu na serwer wykupiony?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Bo ja też miałem kiedyś taki problem, i po przeróżnych próbach znalazłem powód... Problem leżał po stronie dostawcy serwera, na każdym innym które posiadam w innyuch firmach wszystko było dobrze. Niestety dostawca był an tyle nie doświadczony ze nie potrafił naprawić swojego kodowania. Dobrze to sprawdziłęm serwer na okresie próbnym.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 472 Pomógł: 7 Dołączył: 7.12.2005 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Wprowadziłem poprawkę w kodzie: Po prostu zapomniałeś wykonać query dla zmiennej, którą ustawiłeś. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
$queryNames = "SET NAMES 'latin2'"; mysql_query($queryNames); i zadziałało (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Wielkie dzięki mistrzowie!!! |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 5.04.2006 Ostrzeżenie: (20%) ![]() ![]() |
Czy ten problem masz na serwerze na własnym kompie czy już po wysłaniu na serwer wykupiony?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Bo ja też miałem kiedyś taki problem, i po przeróżnych próbach znalazłem powód... Problem leżał po stronie dostawcy serwera, na każdym innym które posiadam w innyuch firmach wszystko było dobrze. Niestety dostawca był an tyle nie doświadczony ze nie potrafił naprawić swojego kodowania. Dobrze to sprawdziłęm serwer na okresie próbnym. Problem był na własnym kompie ale juz wszystko działa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
a kto wie jak zmienić kodowanie w bazie danych moze jakis skrypt?
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 472 Pomógł: 7 Dołączył: 7.12.2005 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
W phpMyAdminie to w 5min zrobisz. Zaznaczasz checkboxy, jeden button i done.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 04:46 |