Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

5 Stron V  « < 2 3 4 5 >  
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: 280
Pomógł: 46
Dołączył: 23.03.2010

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: 460
Pomógł: 49
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
brychu
post 11.01.2020, 22:34:56
Post #77





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 10.04.2015

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


Mam taki problem i nie mogę sobie poradzić, więc może coś podpowiecie.

W bazie mam ustawione : varchar(100) utf8_polish_ci
Na każdej stronie wyświetla mi polskie znaki - tylko nie te bezpośrednio z bazy po zapisaniu ich z formularza, choć mają tkaie samo kodowanie co edycja.

1. Wybieram termin 12.01 na 17:00
2. Wpisuję wszędzie najbardziej polskie słowo
3. Kolejny formularz
4. Podsumowanie - wyświetlają się polskie znaki i to już z bazy
  1. <?php
  2. $z = $mysqli->query("SELECT * FROM `baza` WHERE `dzien`=$dzien AND `godzina`=$godzina");
  3. while ($r = $z->fetch_assoc()) {
  4. echo $r['imie'].' '.$r['nazwisko'].', '.$r['miasto'].', '.$r['ulica'].' '.$r['nrdomu'].', '.$r['telefon'].' ';
  5. }
  6. ?>

5. Na liście rezerwacji mam już krzaki, klikam edycja
6. W edycji OD RAZU są polskie znaki. Nic nie zmieniam, klikam edytuj.
7. Na liście rezerwacji pojawiają się polskie znaki



I proszę łopatologicznie jeśli się da, bo znam tylko podstawy podstaw PHP.
Dodaj, usuń, nadpisz, wyświetl. Tyle ; p

Musiałbym inaczej zaplanować bazy, ale to już inna historia.


Go to the top of the page
+Quote Post
Tomplus
post 13.01.2020, 18:28:37
Post #78





Grupa: Zarejestrowani
Postów: 1 828
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

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


Strona jakie ma kodowanie?

To zapytanie powinno być w osobnym wątku.
Go to the top of the page
+Quote Post
dublinka
post 13.01.2020, 18:52:41
Post #79





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


1. W kazdym pliku musisz miec kodowanie znaków w head.
2. Tuz za polączeniem z mysql wstaw:

  1. $mysqli = new mysqli(............................);
  2. $mysqli->set_charset("utf8");


Ten post edytował dublinka 13.01.2020, 18:55:30


--------------------
Go to the top of the page
+Quote Post
brychu
post 14.01.2020, 00:21:35
Post #80





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 10.04.2015

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


Nadal szlaczki. Nie chciałem pokazywać kodu, bo aż wstyd, ale sam sobie nie poradzę.

connectbase.php
  1. <?php
  2. // polaczenie z serwerem i baza danych
  3. $mysqli = new mysqli('localhost', 'taniepra_mibrychcy', 'Z69XgfMkb', 'taniepra_mibrychcy');
  4. $mysqli->set_charset("utf8");
  5. if ($mysqli->connect_error) {
  6. // w przypadku bledu (od wersji PHP 5.3), wyswietli sie odpowiedni komunikat
  7. die('Connect Error ('.$mysqli->connect_errno.') '. $mysqli->connect_error);
  8. // w przypadku bledu (do wersji PHP 5.3), wyswietli sie odpowiedni komunikat
  9. if (mysqli_connect_error()) {
  10. die('Connect Error (' . mysqli_connect_errno() . ') '
  11. . mysqli_connect_error());
  12. }
  13.  
  14. }
  15. ?>


listarezerwacji.php
  1. <html lang="pl-PL">
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  4. <title>Tanie Pranie Zielona Góra</title>
  5. <meta name="description" content="Tanie Pranie Zielona Góra - tapicerka meblowa i samochodowa. DOJAZD GRATIS! Narożnik, kanapa, dywan, samochód, suv, bus, tir" />
  6. <meta name="keywords" content="pranie dywanów zielona góra, pranie tapicerki zielona góra, pranie, tanie pranie zielona góra, tanie, pranie, zielona, góra, gora, tapicerka, czyszczenie, samochodowa, meblowa, dywan dywanów, wykładzina, narożnik, kanapa, sofa, łóżko, wersalka, tapczan, osobowy, auto, samochód, suv, bus, ciężarowe, ciężarówka, ciągnik, tir" />
  7. <link rel="Stylesheet" type="text/css" href="../style.css" />
  8. <style>
  9. a{color: white;}
  10. a:link {text-decoration: none}
  11. a:visited {text-decoration: none}
  12. a:active {text-decoration: none}
  13. a:hover {text-decoration: underline}
  14. </style>
  15. </head>
  16. <body link="white" vlink="white" alink="yellow">
  17. <center>
  18. <?php
  19.  
  20. require_once "menuadmin.php";
  21. require_once "connectbase.php";
  22.  
  23. echo 'żółć<label>
  24. <table border="1">
  25. <tr>
  26. <td><b>data</b></td>
  27. <td><b>godzina</b></td>
  28. <td><b>adres</b></td>
  29. <td><b>telefon</b></td>
  30. <td><b>cena</b></td>
  31. <td><b>czas</b></td>
  32. <td><b>usluga</b></td>
  33. <td><b>akcja</b></td>
  34. </tr>';
  35.  
  36. $data=date("d");
  37.  
  38. $z = $mysqli->query("SELECT * FROM `baza` WHERE `aktywne`=0 ORDER BY `dzien` ASC");
  39. while ($r = $z->fetch_assoc()) {
  40. if ($r['iloscdywan'] == ''){$dywan = '';} else {$dywan = $r['iloscdywan'];}
  41. if ($r['wiadomosc'] != ''){$wiadomosc = '<a href="wiadomosc.php?id='.$r['id'].'"><font color="green"><b><u><i>';} else {$wiadomosc = '';}
  42. if ($r['dzien'] == $data){$kolordnia='red';} else if ($r['dzien'] == $data+1){$kolordnia='yellow';} else {$kolordnia='white';}
  43.  
  44. echo '<tr>
  45. <td><font color="'.$kolordnia.'">'.$r['dzien'].'.0'.$r['miesiac'].'</font></b></u></i></td>
  46. <td>'.$r['godzina'].':00</td>
  47. <td>'.$wiadomosc.$r['miasto'].' <b>'.$r['ulica'].'</b> '.$r['nrdomu'].'</td>
  48. <td><b>'.$r['telefon'].'</b></td>
  49. <td>'.$r['cena'].'</td>
  50. <td>'.$r['czas'].'</td>
  51. <td>'.$r['pojazd'].' '.$r['mebel'].$dywan.'</td>
  52. <td><a href="usun.php?id='.$r['id'].'"><font color="red">X</font></a>
  53. <a href="wykonaj.php?id='.$r['id'].'"><font color="green"><b>V</b></font></a>
  54. <a href="edytuj.php?id='.$r['id'].'"><font color="yellow">E</font></a></td>
  55. </tr>';
  56. }
  57. ?>
  58. </center>
  59. </body>
  60. </html>
Go to the top of the page
+Quote Post

5 Stron V  « < 2 3 4 5 >
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: 28.03.2024 - 15:53