Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Problem z polskimi znakami ;/
raval
post 17.04.2011, 23:02:55
Post #1





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 1.04.2011

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


Witam,

mam problem z kodowaniem, otóż z poziomu PHP nie wysyła mi poslkich znaków do Bazy MySQL.

Tak wygląda ustawione kodowanie w php:

  1. mysql_connect("localhost", "root", "")or die("Nie można nawiązać połączenia z bazą"); //połączenie z bazą danych
  2. mysql_select_db("phones")or die("Wystąpił błąd podczas wybierania bazy danych");
  3.  
  4. mysql_query("SET NAMES utf8");
  5. mysql_query("SET CHARACTER SET utf8");
  6. mysql_query("SET collation_connection = utf8_polish_ci");
  7. ?>
  8.  
  9.  
  10. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  11. <html xmlns="http://www.w3.org/1999/xhtml">
  12.  
  13. <head>
  14. <meta content="pl" http-equiv="Content-Language" />
  15. <meta content="text/html; charset=UTF8" http-equiv="Content-Type" />
  16. <title>advisory system</title>
  17. <script type='text/javascript' src='jQuery.js'></script>
  18. <link rel="stylesheet" type="text/css" href="css/style.css"/>


a tak wygląda zapytanie Mysql:

  1. mysql_query("UPDATE `telefony` SET `Wyświetlacz` ='$Wyswietlacz'
  2.  
  3. WHERE `id`='$id' ");


Problem tkwi w tym, ze nawet dla literki 'ś' w zapytaniu `Wyświetlacz` widzi blad:

  1. #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '',`Wyświetlacz` at line 7


a także dla zmiennej '$Wyswietlacz', jezeli beda w niej znajdowaly sie polskie znaki, zapytanie nie wykona sie wywalajac powyzszy blad.


Prosze o pomoc jak dany problem mozna rozwiazac.
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
Aylard
post 17.04.2011, 23:17:03
Post #2





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 2.02.2008
Skąd: Elbląg

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


Pole w tabeli z polskim znakiem? Zmień na wyswietlacz i zobacz czy skrypty PHP zapisujesz w UTF-8 o ile dane podajesz gotowe.
Go to the top of the page
+Quote Post
Rid
post 17.04.2011, 23:17:42
Post #3





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

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


Zapisał Pan dokument w UTF-8 bez BOM np.w notepad++ lub innym edytorze tekstu?questionmark.gif

Ten post edytował Rid 17.04.2011, 23:19:56
Go to the top of the page
+Quote Post
raval
post 17.04.2011, 23:30:41
Post #4





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 1.04.2011

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


Cytat(Rid @ 18.04.2011, 00:17:42 ) *
Zapisał Pan dokument w UTF-8 bez BOM np.w notepad++ lub innym edytorze tekstu?questionmark.gif

Tak, zapisalem i nic to nie daje, potrzeba czegos innego
Go to the top of the page
+Quote Post
gargamel
post 17.04.2011, 23:36:25
Post #5





Grupa: Zarejestrowani
Postów: 278
Pomógł: 35
Dołączył: 25.06.2010

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


  1. <meta content="text/html; charset=UTF8" http-equiv="Content-Type" />
poprawnie powinno być:
  1. <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />

W sumie średnie szanse żeby to było źródłem błędu, ale jeśli dane wysyłasz ze strony formularzem, to jakaś szansa jest...
Go to the top of the page
+Quote Post
raval
post 17.04.2011, 23:41:42
Post #6





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 1.04.2011

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


Nie, to nie to, juz zglupialem co moze byc zrodlem problemu ;/
Go to the top of the page
+Quote Post
gargamel
post 17.04.2011, 23:44:42
Post #7





Grupa: Zarejestrowani
Postów: 278
Pomógł: 35
Dołączył: 25.06.2010

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


a w phpMyAdminie jak masz postawiane ?
Go to the top of the page
+Quote Post
raval
post 17.04.2011, 23:47:02
Post #8





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 1.04.2011

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


W phpmyadmin: utf8_polish_ci
Go to the top of the page
+Quote Post
gargamel
post 17.04.2011, 23:50:45
Post #9





Grupa: Zarejestrowani
Postów: 278
Pomógł: 35
Dołączył: 25.06.2010

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


To jest metoda porównywania napisów.
Jaki masz System kodowania znaków dla MySQL? Jeśli tam jest UTF-8 to koniec moich pomysłów.
Go to the top of the page
+Quote Post
raval
post 17.04.2011, 23:58:09
Post #10





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 1.04.2011

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


jest Utf-8
Go to the top of the page
+Quote Post
markonix
post 18.04.2011, 00:16:34
Post #11





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


A daj w echo zapytanie (zamiast wykonywać).


--------------------
Go to the top of the page
+Quote Post
raval
post 18.04.2011, 00:21:06
Post #12





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 1.04.2011

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


yhym, wyszlo, ze nic nie ma, wpisalem wartosc 'Wyś', a zwraca nic'' :

  1. UPDATE `telefony` SET `Wyœwietlacz`=''


a powinno byc:

  1. UPDATE `telefony` SET `Wyświetlacz`='Wyś'


Ten post edytował raval 18.04.2011, 00:22:58
Go to the top of the page
+Quote Post
ToAr
post 18.04.2011, 07:45:08
Post #13





Grupa: Zarejestrowani
Postów: 49
Pomógł: 18
Dołączył: 7.04.2011
Skąd: Toruń

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


wygląda na to, że skrypt nie jest zapisany w utf-8 skoro nie wyświetliły się polskie znaki po wywołaniu 'echo'
Go to the top of the page
+Quote Post
raval
post 18.04.2011, 09:31:28
Post #14





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 1.04.2011

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


A mogle lizyc na podpowiedz jak to zrobic, bo juz siedze nad tym troche i musze przyznac, ze nei wiem ;/
w pierwszym posciem przedstawilem ustawienia dla kodowania, widocznie czegos ejszcze brakuje
Go to the top of the page
+Quote Post
ToAr
post 18.04.2011, 09:34:29
Post #15





Grupa: Zarejestrowani
Postów: 49
Pomógł: 18
Dołączył: 7.04.2011
Skąd: Toruń

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


wrzuć gdzieś spakowany ten skrypt, a sprawdzę,

choć dobrą praktyką jest nieużywanie polskich znaków jeśli chodzi o strukturę tabel w bazie danych.
Go to the top of the page
+Quote Post
markonix
post 18.04.2011, 09:54:31
Post #16





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Jeśli nic Ci się nie wyświetla to ta zmienna nie ma wartości...
Na razie odeszliśmy w ogóle od mysql, masz gdzieś wcześniej widocznie źle.


--------------------
Go to the top of the page
+Quote Post
raval
post 18.04.2011, 10:05:30
Post #17





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 1.04.2011

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


Dane z polskimi znakami przesyla prawidlowo z formularza, nie wysyla jedynie polskich znakow do bazy danych,

tutaj zamieszczam caly plik php, jest tam chaos, ale moze ktos z was sie dopatrzy bledu:


Ten post edytował raval 18.04.2011, 20:33:36
Go to the top of the page
+Quote Post
ToAr
post 18.04.2011, 10:21:34
Post #18





Grupa: Zarejestrowani
Postów: 49
Pomógł: 18
Dołączył: 7.04.2011
Skąd: Toruń

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


jak plik masz zakodowany w ANSI to się nie dziw, że nie działa...

poprawny plik
http://www.speedyshare.com/files/28026653/dodaj.php
Go to the top of the page
+Quote Post
raval
post 18.04.2011, 10:36:58
Post #19





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 1.04.2011

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


Przepraszam moj blad, mialem wczesniej zapisany plik z kodowaniem utf8 bez BOM, ale zle wyslalem na forum, bo troche kombinowalem.

Mimo tego, po daniu echo przez zapytanem wyskakuje mi takie kodowanie znaczkow, ale juz jestesmy blisko :

  1. UPDATE `telefony` SET `Model` ='śśś ćććć', `Standard GSM` ='śśś ćććć', `WyĹ&#155;wietlacz` ='śśś ćććć', `Pamięć` ='śśś ćććć', `Procesor` ='śśś ćććć', `USB` ='śśś ćććć', `Lampa bĹ‚yskowa` ='śśś ćććć', `Cena` ='1090' WHERE `id`='17'
Go to the top of the page
+Quote Post
ToAr
post 18.04.2011, 10:46:16
Post #20





Grupa: Zarejestrowani
Postów: 49
Pomógł: 18
Dołączył: 7.04.2011
Skąd: Toruń

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


w strukturze tabeli w nazwach kolumn nie używaj polskich znaków

pozamieniaj "Wyświetlacz" na "Wyswietlacz" itp.

zamiast spacji dobrze używać "_"
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 24.06.2025 - 09:58