Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySql] Problem z kodowaniem znaków.
mariusz g
post
Post #1





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 25.03.2006

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


mam poniższy kod aw nik kodowanie charset=iso-8859-2

W phpMyAdmin dla pola "opis" Metoda porównywania napisów - nie wiem co mam tam ustawić aby było prawidłowo wyświetlana na stronie i w phpmyadmin. Bo niema tam charset=iso-8859-2.



  1. <html>
  2. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  3. <head>
  4. </head>
  5. <body>
  6. <?
  7. if($_POST["opis"]){
  8. if (mysql_connect('localhost','root','') and mysql_select_db('polskie_znaki')) {
  9.  
  10. $zapytanie = "INSERT INTO tabela SET opis = '".$_POST["opis"]."'";
  11. $wykonaj = mysql_query ($zapytanie); 
  12.  
  13.  }
  14.  
  15. }
  16.  
  17. if (mysql_connect('localhost','root','') and mysql_select_db('polskie_znaki')) {
  18.  
  19.  $zapytanie = "SELECT * FROM tabela";
  20.  $wykonaj = mysql_query ($zapytanie);
  21.  while($wiersz=mysql_fetch_array ($wykonaj)) {
  22.  echo $wiersz['opis']."<br />";
  23. }
  24. }
  25. ?>
  26.  
  27.  
  28. <form action="index.php" method="post" enctype="multipart/form-data">
  29. <input type="text" name="opis" />
  30. <input type="submit" />
  31. </form>
  32.  
  33. </body>
  34. </html>
Go to the top of the page
+Quote Post
b4x
post
Post #2





Grupa: Zarejestrowani
Postów: 658
Pomógł: 95
Dołączył: 20.12.2005
Skąd: N54,35° E18,63° (Gdańsk)

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


  1. <?php
  2. mysql_query("SET NAMES 'latin2'");
  3. ?>

- przy wybieraniu bazy :-) (spróbuj.)


--------------------
Go to the top of the page
+Quote Post
franki01
post
Post #3





Grupa: Zarejestrowani
Postów: 508
Pomógł: 75
Dołączył: 2.11.2005
Skąd: Bydgoszcz

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


Kodowanie iso-8859-2 w MySQL'u występuje jako latin2_general_ci. Zmień w tabelach na takie. Tuż po nawiązaniu połączenia z bazą danych (przez mysql_connect()), wyślij do niej takie zapytanie:

  1. SET NAMES latin2


I po tym nie powinno być żadnych problemów.
Go to the top of the page
+Quote Post
webdice
post
Post #4


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Cytat(franki01 @ 4.05.2008, 16:02:15 ) *
Kodowanie iso-8859-2 w MySQL'u występuje jako latin2_general_ci. (...)


latin2_general_ci to jest motoda porównywania napisów,a nie kodowanie.
Go to the top of the page
+Quote Post
mariusz g
post
Post #5





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 25.03.2006

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


dzięki za odpowiedz

jeśli dodam przy dodawaniu do bazy i wybieraniu

  1. <?php
  2. mysql_query("SET NAMES 'latin2'");
  3. ?>


Czy to znaczy ze jeśli będę miał serwis z 20 zapytaniami to wszędzie muszę to zmienić ?
Analizowałem inne przykładowe kody stron i tam nic takiego nie ma.
Go to the top of the page
+Quote Post
b4x
post
Post #6





Grupa: Zarejestrowani
Postów: 658
Pomógł: 95
Dołączył: 20.12.2005
Skąd: N54,35° E18,63° (Gdańsk)

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


Przeważnie serwery mają domyślnie ustawiony utf 8 (wg. mnie najlepsze kodowanie biggrin.gif)

Wystarczy że przy wybieraniu bazy wrzucisz ten kod :-) (czyli przy łączeniu się z nią.)

Czyli np.

  1. <?php
  2. function connect($u, $p, $db, $s) {
  3.  
  4. $connect = mysql_connect($s, $u, $p); 
  5. mysql_select_db($db, $connect) or die("DB Error");
  6. mysql_query("SET NAMES 'latin2'");
  7.  
  8. }
  9. ?>


Ostatnio na localu miałem problemy z kodowaniem - i to mi pomogło smile.gif

Ten post edytował b4x 4.05.2008, 15:48:49


--------------------
Go to the top of the page
+Quote Post

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 Aktualny czas: 20.08.2025 - 19:55