Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z kodowaniem polskich znakow
krolas
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 5.04.2006

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


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>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
cadavre
post
Post #2





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
  1. <?php
  2. (...)
  3. $queryNames = "SET NAMES 'latin2'";
  4. mysql_query($queryNames); //query z set names nie wykonujesz!
  5. $query = "SELECT * FROM Ksiazki";
  6. if (!$result = mysql_query($query, $db_lnk)){
  7. echo('Wystapil blad: nieprawidlowe zapytanie...<br>');
  8. }
  9. (...)
  10. ?>
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
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: 8.10.2025 - 03:43