Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MSSQL]problem z kodowaniem
james8
post 2.12.2008, 21:51:18
Post #1





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 29.07.2008

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


Witam, 

Mam problem z kodowaniem znaków pobieranych z bazy danych, mianowicie przy polskich znakach wyrzuca mi "krzaki".

Próbowałem już prawie wszystkiego, nic nie pomaga... kod skryptu zamieszczam poniżej (w php my_admin metoda porównani znaków to 'latin2_general_ci') natomista gdy wpisuje kwerende w php sprawdzajaca kodowanie bazy to wyswietla 'latin1' i wywala krzaki... 

Jeśli ktoś wie co jest przyczyną problemu, oraz jak się jej pozbyć, porszę o info:)


<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
  <meta http-equiv="Content-type" content="text/html; charset="utf-8">
</head>
<body>

<?php
if (!$db_lnk = @mysql_connect("localhost", "user1", "test1")){
  echo('Wystąpił błąd podczas próby połączenia z serwerem MySQL...<BR>');
  exit;
}

if(!@mysql_select_db('kontakty')){
  echo('Wystąpił błąd podczas wyboru bazy danych: Ksiegarnia<BR>');
  @mysql_close();
  exit;
}


echo("Kodowanie znaków to: " . mysql_client_encoding());


$query = 'select * from adresy';

if(!$result = mysql_query($query, $db_lnk)){
  echo('Wystąpił błąd: nieprawidłowe zapytanie...<BR>');
  @mysql_close();
  exit;
}

?>
 

<table border="1">
<tr>
 <td>Id</td>
 <td>Imię</td>
 <td>Nazwisko</td>
 <td>Pseudo</td>
 <td>Urodziny</td>
 <td>Adres</td>
 <td>Telefon kom.</td>
 <td>Telefon stac.</td>
 <td>GG</td>
 <td>Skype</td>
 <td>E-mail</td>
</tr>

<?php
while($row = mysql_fetch_row($result)){
echo("<tr>");
echo("<td>$row[0]</td>");
echo("<td>$row[1]</td>");
echo("<td>$row[2]</td>");
echo("<td>$row[3]</td>");
echo("<td>$row[4]</td>");
echo("<td>$row[5]</td>");
echo("<td>$row[6]</td>");
echo("<td>$row[7]</td>");
echo("<td>$row[8]</td>");
echo("<td>$row[9]</td>");
echo("<td>$row[10]</td>");
echo("</tr>");
}
?>

</table>


<?php
if(!@mysql_close()){
 echo('Wystąpił błąd podczas zamykania połączenia z serwerem MySQL');
}
?>



</body>
</html>

Ten post edytował james8 2.12.2008, 21:54:46
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
lukasz_os
post 2.12.2008, 21:58:44
Post #2





Grupa: Zarejestrowani
Postów: 203
Pomógł: 55
Dołączył: 23.11.2008
Skąd: UKF

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


Skoro masz strone na kodowaniu utf-8 to jak chcesz aby dobrze wyswietlalo dane kodowane w latin-2 biggrin.gif

Pozdrawiam.


--------------------
Pomagam jeśli mam czas oraz jak się na tym znam :D
Go to the top of the page
+Quote Post
james8
post 2.12.2008, 22:01:36
Post #3





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 29.07.2008

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


Strone sprawdzałem również w kodowaniu iso-8859-2 (czyli latin2), ale co z tego skoro baza jest w latin1(iso-8859-1) tak czy siak wywala krzaki!!!!
Go to the top of the page
+Quote Post
potreb
post 2.12.2008, 22:06:26
Post #4





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


To ustaw kodowanie bazy na utf-8


--------------------

Go to the top of the page
+Quote Post
james8
post 2.12.2008, 22:08:39
Post #5





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 29.07.2008

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


potreb bez różnicy jakie kodowanie ustawiam w php my admin, skrypt php:

echo("Kodowanie znaków to: " . mysql_client_encoding());

odpowiada: latin1 dostaje już cholery z tym :/
Go to the top of the page
+Quote Post
lukasz_os
post 2.12.2008, 22:10:21
Post #6





Grupa: Zarejestrowani
Postów: 203
Pomógł: 55
Dołączył: 23.11.2008
Skąd: UKF

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


A probowales zmieniac metode porownywania napisow? Z tego co pamietam domyslne jest latin1_swedish_ci. Sprobuj zmienic na latin2_general_ci lub na utf8_general_ci.

Pozdrawiam.


--------------------
Pomagam jeśli mam czas oraz jak się na tym znam :D
Go to the top of the page
+Quote Post
piotrooo89
post 2.12.2008, 22:14:59
Post #7


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




~lukasz_os ma racje kluczem będzie metoda porównywanie napisów a nie tylko kodowanie bazy.


--------------------
Go to the top of the page
+Quote Post
james8
post 2.12.2008, 22:21:41
Post #8





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 29.07.2008

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


lukasz_os porównywanie znaków mam ustawione na 'latin2' krzaków pozbyłem się edytująć wszystkie wpisy w bazie (męczarnia) dane pobiera poprawnie, aczkolwiek przy sprawdzeniu z php kodowania bazy wyskakuje latin1. ISTNY PARADOKS!!!!!
Go to the top of the page
+Quote Post
potreb
post 2.12.2008, 22:48:00
Post #9





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Zadne paradoks. Jak tworzysz baze w utf to strona tez odrazu utf, zmienianie kodowania nie pomoże jeżeli masz juz wgrane teksty


--------------------

Go to the top of the page
+Quote Post
Ociu
post 3.12.2008, 13:55:57
Post #10





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




To tak, brak bbcode i wałkowanie tysięczny raz tego samego tematu. Cóż ja mogę, cóż ja mogę... Już wiem, odeśle Cie do wyszukiwarki forum!
Zamykam.
Go to the top of the page
+Quote Post

Closed TopicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 00:42