Forum Coders' city Strona Gwna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UytkownicyUytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj si, by sprawdzi wiadomociZaloguj si, by sprawdzi wiadomoci   ZalogujZaloguj 

Potrzebuj szybkiej odpowiedzi na moje pytanie... Zasady

[php/mysql] polskie znaki przy zapisie do bazy danych

Id do strony 1, 2  Nastpny

 
Odpowiedz do tematu    Forum Coders' city Strona Gwna -> PHP
Zobacz poprzedni temat :: Zobacz nastpny temat  
Autor Wiadomo
ikons
Go





PostWysany: Nie Maj 06, 2007 8:49 pm  OP    Temat postu: [php/mysql] polskie znaki przy zapisie do bazy danych Odpowiedz z cytatem Pisownia

heh..
pisz panel administracyjny i napotkaem sie na nielada problem gdy zapisuj informacje do bazy za pomoc php zmienia mi si kodowanie :/
wycina polskie znaki (np zamienia si na ?)
nie wiem jakie to kodowanie bo nigdy nic o tym nie czytaem i jako mnie nie cignie do tego - czas tez nie pozwala za bardzo...

gdy robi to za pomoc konsoli jest wszystko ok w bazie s polskie znaki natomiast jeli zapisuj co za pomoc phpca to w bazie odrazu pojawia si sieczka :/
Powrt do gry
Ktoso



Doczy: 05 Pa 2005
Posty: 962
Skd: Akwarium

PostWysany: Nie Maj 06, 2007 10:34 pm      Temat postu: Odpowiedz z cytatem Pisownia

Jak kodowana jest strona php, z ktrej to zapisujesz do bazy danych?

(ISO-8859-2 to zazwyczaj dobry wybr)

_________________
Life is Study - Kintaro Oe (Golden Boy)
Project13 - The Soul of a Coder - (Portfolio)
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo Odwied stron autora
ikons
Go





PostWysany: Nie Maj 06, 2007 10:52 pm      Temat postu: Odpowiedz z cytatem Pisownia

naturalnie iso
Kod:
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">



wiem e utf i php si nie lubi :)

iso jest zarwno na stronie na ktrej zapisuj i na tej na ktrej odczytuj - zreszt liczy si tylko zapis bo tak jak mwi po zapisie w bazie ju nie tak jak potrzeba.. :/

prbowaem takiego myczka:

Kod:
$db_result = mysql_query("ALTER TABLE p1 MODIFY title CHAR(160) CHARACTER SET latin2;");  


p1 to tabela
title to kolumna - tak wyczytaem w dokumentacji - niby nie zwraca bdu ale nie wiem czy to jest poprawnie :/

ju mi brakuje pomysw co z tym zrobi :/
Powrt do gry
Garf



Doczy: 25 Maj 2005
Posty: 3550
Skd: Rzeszw

PostWysany: Nie Maj 06, 2007 10:57 pm      Temat postu: Odpowiedz z cytatem Pisownia

Php i UTF jak najbardziej si lubi. A co do zmiany kodowania, to sprawd sobie funkcj mysql_client_encoding, bo tutaj wanie PHP i MySQL lubi si pogry.

Rozwizania s takie: albo w konfiguracji bazy danych albo po kadym poczeniu wykona polecenie:
Cytat:
SET NAMES latin2
. PHP skonwertuje w locie co trzeba (o ile w ogle trzeba).
_________________
Internet nadal „nic nie rozumie”, adnego odkrycia, choby od niego zalea los wiata,
ale nadanego w egzotycznym jzyku, nie odrni od nieco mniej wanej wieci,
e u ciotki w placku z jabkami zrobi si w piekarniku zakalec.
Stanisaw Lem
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo
ikons
Go





PostWysany: Nie Maj 06, 2007 11:25 pm      Temat postu: Odpowiedz z cytatem Pisownia

znaczy chodzi mi o to e PHP jest totalnym ingorantem jesli chodzi o UTF8 Po prostu tam jeden znak to jeden bajt i koniec. (bynajmniej tyle sie zkursu dowiedziaem :D

a teraz do rzeczy:
miae racje miaem latin1
ale naral nie wiem jak to zmieni :/
na mj chopski rozum tak:

Kod:
$db_connect_id = @mysql_connect($db_host, $db_user , $db_pass);
mysql_query("SET NAMES 'latin2'");
$charset = mysql_client_encoding($db_connect_id);


ale to nie dziaa :/

ps.
bez cudzysoww te probowalem:

Kod:
mysql_query("SET NAMES latin2");
Powrt do gry
Ktoso



Doczy: 05 Pa 2005
Posty: 962
Skd: Akwarium

PostWysany: Pon Maj 07, 2007 1:13 am      Temat postu: Odpowiedz z cytatem Pisownia

Garf jak zwykle dobrze prawi ;-)

Z swojej strony mog odesa tutaj: http://www.coderscity.net/ftopic9578.html gdzie mj, podobny problem rozwizano.

Oraz poradzi analogicznie do tego co u mnie zadziaao:
Kod:
mysql_query("SET NAMES `latin2`");

Zauwa e te apostrofy przy latin2 to nie te ' (pod ") tylko ` (pod ~), oby to pomogo :-)

_________________
Life is Study - Kintaro Oe (Golden Boy)
Project13 - The Soul of a Coder - (Portfolio)
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo Odwied stron autora
ikons
Go





PostWysany: Pon Maj 07, 2007 6:51 am      Temat postu: Odpowiedz z cytatem Pisownia

heh niestety nie pomogo - przeinstaluje baz - zobaczymy co bdzie martwi mnie tylko fakt ze nie wiem na jaki serwer to trafi milo by byo gdyby php zawsze robi co trzeba.

PS. nie wiem gdzie ja mam gow nie dalej jak 2 dni temu czytaem wanie eby uywa ` a nie ' - to pierwszy skrypt w php ktry wsppracuje z bazami danych jaki pisz - i mam proszk za duo wiedzy teoretycznej a za mao praktyki :/
Powrt do gry
Garf



Doczy: 25 Maj 2005
Posty: 3550
Skd: Rzeszw

PostWysany: Pon Maj 07, 2007 8:00 am      Temat postu: Odpowiedz z cytatem Pisownia

ikons napisa:
znaczy chodzi mi o to e PHP jest totalnym ingorantem jesli chodzi o UTF8 Po prostu tam jeden znak to jeden bajt i koniec. (bynajmniej tyle sie zkursu dowiedziaem :D

To kiepski ten kurs ;)

Co do bazy danych - masz moliwo pogrzebania w konfiguracji? Prbowae zapisa jakie dane po wywoaniu SET names?

_________________
Internet nadal „nic nie rozumie”, adnego odkrycia, choby od niego zalea los wiata,
ale nadanego w egzotycznym jzyku, nie odrni od nieco mniej wanej wieci,
e u ciotki w placku z jabkami zrobi si w piekarniku zakalec.
Stanisaw Lem
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo
ikons
Go





PostWysany: Pon Maj 07, 2007 9:07 am      Temat postu: Odpowiedz z cytatem Pisownia

tak mam moliwo - baza jest postawiona na localhost (webserv)

kolejno dziaa jest taka:
cz si z baz

nastpnie:
Kod:
mysql_query("SET NAMES `latin2`");
   $charset = mysql_client_encoding($db_connect_id);
//utf'a tez ju prbowaem i co bym nie wstawi cay czas moje $charset = "latin1" :/:/



potem tworze tabele
a nastpnie dodaje do nich przykadowe texty

- tyle ma robi ten instalator :)
Powrt do gry
Garf



Doczy: 25 Maj 2005
Posty: 3550
Skd: Rzeszw

PostWysany: Pon Maj 07, 2007 10:01 am      Temat postu: Odpowiedz z cytatem Pisownia

W sekcji mysqld pliku /etc/mysql/my.cnf dopisujesz:
Cytat:
init-connect='SET NAMES latin2'


Powinno pomc. Pytaem, czy po wywoaniu tego polecenia i zapisie danych take wstawia krzaczki.[/i]

_________________
Internet nadal „nic nie rozumie”, adnego odkrycia, choby od niego zalea los wiata,
ale nadanego w egzotycznym jzyku, nie odrni od nieco mniej wanej wieci,
e u ciotki w placku z jabkami zrobi si w piekarniku zakalec.
Stanisaw Lem
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo
Wywietl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Gwna -> PHP Wszystkie czasy w strefie CET (Europa)
Id do strony 1, 2  Nastpny
Strona 1 z 2

 
Skocz do:  
Moesz pisa nowe tematy
Moesz odpowiada w tematach
Nie moesz zmienia swoich postw
Nie moesz usuwa swoich postw
Nie moesz gosowa w ankietach
Moesz dodawa zaczniki na tym forum
Moesz pobiera pliki z tego forum




Debug: strone wygenerowano w 0.03204 sekund, zapytan = 12
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |