Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

4 Stron V  « < 2 3 4  
Reply to this topicStart new topic
> [MYSQL] Polskie znaki
kardi3
post 4.11.2011, 11:31:28
Post #61





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 17.07.2011

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


Witam,
przejrzałem tematy dotyczące polskich znaków i niestety nie znalazłem rozwiązania mojego problemu.
Zrobiłem to co napisane w artykule na wstępie tego tematu,nie pomogło.
W bazie danych są wyświetlane polskie znaki, natomiast gdy przychodzi do wyświetlenia elementu bazy na stronie to pojawiają się krzaczki. Wyświetla się jedynie litera ó.

Efekt jest widoczny tutaj
Wszystkie działania przedstawione na forum przyniosły jedynie zmiane wyglądu krzaczków...
Proszę o pomoc

Kod
<?php header('Content-Type: text/html; charset=UTF-8'); ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
<title>Znaki</title>
</head>


<body>
<?php
require_once('funkcje_bd.php');
$db = lacz_bd();
$db->query('SET NAMES utf8');
$db -> query ('SET CHARACTER_SET utf8_unicode_ci');
$zapytanie="select nazwisko,imie,druzyna,sum(bramki) as suma from strzelcy2 group by nazwisko,imie,druzyna order by sum(bramki) DESC";
$wynik0=$db->query($zapytanie);
$ile=$wynik0->num_rows;

echo "<table>";

echo "<tr>";
echo "<td> Nazwisko</td>";
echo "<td> Imie </td>";
echo "<td> Druzyna </td>";
echo "<td> Bramki </td>";
for ($i=0;$i<$ile;$i++)
{
$wiersz0=$wynik0->fetch_assoc();
echo "<tr>";
echo "<td> $wiersz0[nazwisko]</td>";
echo "<td> $wiersz0[imie]</td>";
echo "<td> $wiersz0[druzyna]</td>";
echo "<td> $wiersz0[suma]</td>";
echo "<tr>"; }
echo "</tbody>";
echo "</table>"; ?>

</body></html>


Ten post edytował kardi3 4.11.2011, 11:32:57
Go to the top of the page
+Quote Post
El Nino9
post 4.02.2012, 13:02:41
Post #62





Grupa: Zarejestrowani
Postów: 87
Pomógł: 3
Dołączył: 3.04.2011

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


witam natrafiłem dziś na dziwny problem
otóż szczytuje sobie dane z pewnej strony i dodaje rekordy do bazy danych (ogólnie ponad 300k wierszy, spory plik)
używam funkcji gzfile, później urldecode następnie jadę pętlą foreach
miałem problem z kodowaniem ale rozwiązałem go mysql_query("SET NAMES utf8");
a więc do sedna - rekordy zapisały się do bazy w miare ok - ale tylko w miare bo czesc z nich się wykrzaczyło, co najlepsze to takie same wyrazy albo się krzaczyły albo nie
przykład
w pliku miałem
241719,wioska+barbarzy%C5%84ska,709,947,6384830,11970,0
241726,wioska+barbarzy%C5%84ska,827,139,3163882,11106,0

w bazie zapisało się:

241719 wioska barbarzyńska 709 947 6384830 11970 0
241726 wioska barbarzyńska 827 139 3163882 11106 0

z czego to może wynikać?
pozdro
Go to the top of the page
+Quote Post
virVP
post 21.03.2012, 11:19:22
Post #63





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 22.03.2010

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


Witam
Mam problem z PL znaczkami z bazy MySQL- kodowanie UTF8.
Zrobiłem kopię zapasową. Przeniosłem bazę na nowy komputer (XP 32bit, WAMPSERWER) i tu się pojawił problem - nie mam PL znaczków na www. Wczytując kopię tej samej bazy na innym komputerze (7 64bit, WAMPSERWER) - nie ma problemów, wszystko działa.
- teksty zapisane w kodzie PHP wyświetlają się poprawnie
- w <head> mam zapis że to UTF8
- wyświetlając zawartość bazy np. w MySQL Workbench - mam PL znaczki
- dodając wpis do bazdy z poziomu www - wyświetlą się ok na www, ale w bazie (np. w MySQL Workbench) już nie ma PL znaczków

Zauważyłem, ze w my.ini nie mam zapisu: default-character-set=utf8.
Wpisując go - MySLQ nie chce się uruchomić. Ale nie wiem co z tym dalej zrobić. Może ktoś coś podpiwiedzieć?

ROZWIĄZANIE
Dodałem do my.ini:
character-set-serwer=utf8
character-set-filesystem=utf8

i wszystko działa:)

Ten post edytował virVP 21.03.2012, 11:35:49
Go to the top of the page
+Quote Post
michu_06
post 29.03.2012, 07:48:04
Post #64





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 21.06.2009
Skąd: z nienacka

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


ja robię trochę inny myk jak mam przenieść bazę danych, do tej pory zawsze to działało
plik z utowrzoną kopią nazwijmy kopia.sql
a z shell robię coś takiego :
Kod
echo "SET NAMES UTF8;" > kopia_pl.sql
cat kopia.sql >> kopia_pl.sql


w ten sposób, przy imporcie bazy zawsze mam polskie znaczki, jak do tej pory zawsze to zdawało egzamin.
Go to the top of the page
+Quote Post
-Filia-
post 3.05.2012, 23:29:06
Post #65





Goście







Witam

Przewertowałem mnóstwo for i postów, próbowałem różnych rozwiązań i nie mogę sobie poradzić z takim problemem.

Mam panel napisany w php z wykorzystaniem mysql na zdalnym serwerze i wszystko działa cacy.

Chciałem uwolinić panel od internetu i zainstalowałem sobie po kolei xampa wampa vertrigo a nawet krasnala.
Odpaliłem panel na swoim kompie, wyeksportowałem bazę ze zdalnego serwera i zaiportowałem w phpmyadmin u siebie.

Sam panel chodzi dobrze, ale oczywiście rozwaliło polskie znaki.
Najciekawsze jest to jak przestawie w pliku na kompie localhost na adres zdalnego serwa na którym baza chodzi na codzien to polskie znaki są.

Oczywiście porównania i kodowania znaków ustawiłem w swojej bazie identycznie jak w zdalnej. Jedyne czego nie umiem przestawić to zmienne które się różnią:

U siebie mam tak:

character set client utf8
(Wartość globalna) latin1
character set connection utf8
(Wartość globalna) latin1
character set database latin1
character set filesystem binary
character set results utf8
(Wartość globalna) latin1
character set server latin1
character set system utf8
character sets dir c:\wamp\bin\mysql\mysql5.5.20\share\charsets\
collation connection utf8_general_ci
(Wartość globalna) latin1_swedish_ci
collation database latin1_swedish_ci
collation server latin1_swedish_ci

A na zdalnym serwerze tak:

character set client utf8
(Wartość globalna) latin2
character set connection utf8
(Wartość globalna) latin2
character set database latin2
character set filesystem binary
character set results utf8
(Wartość globalna) latin2
character set server latin2
character set system utf8
character sets dir /usr/share/mysql/charsets/
collation connection utf8_general_ci
(Wartość globalna) latin2_general_ci
collation database latin2_general_ci
collation server latin2_general_ci


Myscharacter set client utf8
(Wartość globalna) latin2
character set connection utf8
(Wartość globalna) latin2
character set database latin2
character set filesystem binary
character set results utf8
(Wartość globalna) latin2
character set server latin2
character set system utf8
character sets dir /usr/share/mysql/charsets/
collation connection utf8_general_ci
(Wartość globalna) latin2_general_ci
collation database latin2_general_ci
collation server latin2_general_ci

W jaki sposób można zmienić te wartości np w xampie żeby oba serwery były identyczne?
Męcze się z tym od rana i nie moge znaleść sposobu, przegrzabałem pół dokumentacji mysql' ale nic i tak nie działa sad.gif
help!
Go to the top of the page
+Quote Post
obiektowy12
post 18.12.2012, 10:21:10
Post #66





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 18.12.2012
Skąd: Kraków

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


Sprawdź jakie kodowanie masz w pliku, np notepad ++ ma domyślne kodowanie, kurcze nie pamiętam teraz jakie, ale musisz zmienić na utf_polish, najlepiej korzystaj z darmowego programu Eclipse dam jest domyślnie ustawione na obsługę polskich znaków


--------------------
Wejść do nory z ogrzewaniem nadmuchowym i nie wychodzić aż do pory wiosennej.
Go to the top of the page
+Quote Post
bulwaa7
post 28.03.2013, 19:03:45
Post #67





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 30.07.2012

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


Witam kolegów. Ja dopiero raczkuję w PHP toteż moje pytanie może być banalne.

Znacznik meta:
  1. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

Sortowanie połączenie z serwerem utf8_general_ci
Metoda porównywania napisów utf8_general_ci

Po wywołaniu
  1. while ($row = mysqli_fetch_array($result)) {
  2. $jokes[]= $row['tekstkawalu'];
  3. }


Gdzie tu problem?

Wyskakują mi "krzaczki" w miejsce polskich znaczków
Próbowałem już nawet zmienić sortowanie połączenia z serwerem i metodę porównywania napisów na utf8_polish_ci ale bezskutecznie.

Przy wywołaniu echo "ążźńćół"; wyskakują polskie znaczki a poprzez pobieranie z bazy danych nie. W phpmyadmin polskie znaki są prawidłowo wyświetlane.

Jak zaradzić temu problemowi?

Ten post edytował bulwaa7 28.03.2013, 19:05:48
Go to the top of the page
+Quote Post
Evinek
post 28.03.2013, 19:21:26
Post #68





Grupa: Zarejestrowani
Postów: 278
Pomógł: 46
Dołączył: 23.03.2010
Skąd: Gdynia

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


Spróbuj to:
http://php.net/manual/pl/mysqli.set-charset.php
$mysqli->set_charset("utf8");
Go to the top of the page
+Quote Post
bulwaa7
post 28.03.2013, 19:28:54
Post #69





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 30.07.2012

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


Działa, dzięki:)

Ten post edytował bulwaa7 28.03.2013, 19:30:54
Go to the top of the page
+Quote Post
Kiui
post 16.06.2013, 13:59:12
Post #70





Grupa: Zarejestrowani
Postów: 125
Pomógł: 0
Dołączył: 8.06.2012
Skąd: Lublin

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


Hej.

Fajny temat bardzo przydatny może dożuce swoje 3 groszę i sie komuś przyda.

U mnei ta funkcja fajnie smiga dlatego polecam smile.gif
  1. public function db($zapotp)
  2. {
  3. $db = new mysqli('localhost','root','','db');
  4. $langadb = "SET NAMES utf8";
  5. mysqli_query($db, $langadb);
  6. return mysqli_query($db, @$zapotp);
  7. mysqli_close($db);
  8. }
  9. $zap = "select * from nazwa where id='3'";
  10. $odp = $db($zap);
Go to the top of the page
+Quote Post
izi
post 11.08.2013, 11:22:12
Post #71





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 11.08.2013

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


Witam!

Od kilku dni próbuję poradzić sobie z polskimi znakmi, niestety ciągle nic nie wychodzi... Może ktoś mi tutaj pomoże, będę bardzo wdzięczny...

Tak wygląda początek kodu:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="pl" xml:lang="pl">
  3. <head>
  4. <!-- Start Included Script -->
  5. <title><?php echo"$config[sitename]" ?></title>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf8" />


Próbowałem dawać UTF-8, rózne kombinacje, ale nic nie wychodzi...
Go to the top of the page
+Quote Post
klimczakjakub1
post 12.11.2013, 21:08:50
Post #72





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 12.11.2013

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


A ja zaśmiecałem Zapytaj takimi pytaniami... facepalmxd.gif
Go to the top of the page
+Quote Post
mareklandowski
post 4.01.2014, 00:30:47
Post #73





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 4.01.2014
Skąd: Bielsko-Biała

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


Te problemy są typowe przy przenoszeniu baz danych. Odkąd korzystam z framework'a (YII) dewelopuje wyłącznie na docelowym serwerze - łacze się poprzez Sublime, baza danych jest na serwerze i problemu przenoszenia baz danych nie mam. Natomiast rzeczywiście, zawsze set names utf8 |Latin2 itp. zawsze pomagało. Dawałem to zawsze tuż po connect.

Powód edycji: [Kshyhoo]: O tym była mowa kilka postów wyżej. Proszę nie odgrzebywać startch wątków.


--------------------
"Nie znamy wartości wody, póki nie wyschnie studnia."
Go to the top of the page
+Quote Post
KrzysztofKuznik
post 8.02.2014, 11:58:15
Post #74





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 5.11.2013
Skąd: Wroclaw

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


Dzieki smile.gif to sie przydalo zwlaszcza ze uzywam windows-a ang. a nie polskiego.
Go to the top of the page
+Quote Post
wyz
post 11.05.2014, 20:31:15
Post #75





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 11.05.2014

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


Witam! Jestem początkujący. Wiem, że ten temat przewijał się wiele razy, ale nigdzie nie znalazłem rozwiązania, skutecznego sposobu który by zadziałał. Otóż nie wiem co zrobić żeby na localhost czytało polskie znaki. Korzystam z Xampp, Notepad++ i Ked.
Próbowałem wkleić w my.ini

  1. character-set-server = latin2
  2. collation-server = latin2_general_ci
  3. init-connect = 'SET NAMES latin2'


ale nie pomogło
Wkleiłem to pod:
  1. read_buffer_size = 256K
  2. read_rnd_buffer_size = 512K
  3. myisam_sort_buffer_size = 8M
  4. log_error = "mysql_error.log"


Jeżeli znacie sposób to proszę pomóżcie.
Go to the top of the page
+Quote Post
trzczy
post 23.10.2017, 00:04:51
Post #76





Grupa: Zarejestrowani
Postów: 451
Pomógł: 47
Dołączył: 5.06.2011

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


@wyz
To get UTF-8 charset you can specify that in the DSN.
  1. $link = new PDO("mysql:host=localhost;dbname=DB;charset=UTF8");

  1. $db = new pdo('mysql:host=127.0.0.1;port=3306;dbname=mysql;charset=utf8','user','password',array(
  2. PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
  3. ));

http://php.net/manual/en/pdo.construct.php

Ten post edytował trzczy 23.10.2017, 00:07:54
Go to the top of the page
+Quote Post

4 Stron V  « < 2 3 4
Reply to this 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: 23.10.2018 - 21:54