Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] nie wyświetla na stronce PL znaków
Forum PHP.pl > Forum > Przedszkole
kalafior122
Witam jestem już tak w####y męczę się z tym 2 i pół godz. w PHPMYADMIN pokazuje normalnie znaki PL a na stronce nie
kodowanie w pma (mysql):
utf8_polish_ci
meta w na stronce:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

dlaczego nie wyświetla i jak to naprawićquestionmark.gif
przemo191

  1.  
  2. $link = mysqli_connect('localhost', 'root', '');
  3. mysqli_set_charset($link, 'utf8');
  4.  



kalafior122
ja mam mysql a nie mysqli a gdy poprawiłem wyskakuje błąd i nadal nic
error:
Warning: mysql_set_charset() expects parameter 1 to be string, resource given in bazka.php on line 9
Szymciosek
A zapytanie do bazy umiesz wysłać ? Query ?

  1. query("SET NAMES utf8");


Po każdym łączeniu z bazą
kalafior122
jeżeli jest to PDO to nie sad.gif

kod wyświetlający
  1. <?php
  2. include("bazka.php");
  3. $id = $_GET["a"];
  4. $q1 = mysql_query("SELECT * FROM news WHERE id = '$id' LIMIT 1");
  5. $p1 = mysql_fetch_assoc($q1);
  6. {
  7. $tytul = $p1["tytul"];
  8. $autor = $p1["autor"];
  9. $data = $p1["data"];
  10. $tresc = $p1['tresc'];
  11. $title = $tytul;
  12. }
  13. include("top.php");
  14. // meta (utf8) jest w top
  15. ?>
  16. <div id="tresc">
  17. <?php
  18.  
  19. <br>
  20. <h1>$tytul</h1>
  21. <br>
  22. $tresc
  23. ";
  24.  
  25. ?>
  26. </div>
  27. <?php include("bottom.php"); ?>
  28.  
Szymciosek
Cytat(kalafior122 @ 16.08.2012, 23:22:31 ) *
jeżeli jest to PDO to nie sad.gif

kod wyświetlający
  1. <?php
  2. include("bazka.php");
  3. $id = $_GET["a"];
  4. $q1 = mysql_query("SELECT * FROM news WHERE id = '$id' LIMIT 1");
  5. $p1 = mysql_fetch_assoc($q1);
  6. {
  7. $tytul = $p1["tytul"];
  8. $autor = $p1["autor"];
  9. $data = $p1["data"];
  10. $tresc = $p1['tresc'];
  11. $title = $tytul;
  12. }
  13. include("top.php");
  14. // meta (utf8) jest w top
  15. ?>
  16. <div id="tresc">
  17. <?php
  18.  
  19. <br>
  20. <h1>$tytul</h1>
  21. <br>
  22. $tresc
  23. ";
  24.  
  25. ?>
  26. </div>
  27. <?php include("bottom.php"); ?>
  28.  


Dodaj po tym:
  1. $id = $_GET["a"];


to:
  1. mysql_query ('SET NAMES utf-8');


rozumiem, że:
  1. include("bazka.php");

łączy Cię z bazą ?

Albo drugą opcją może być teraz to, że w bazie masz już zapisane wszystkie wpisy z innym kodowaniu, więc teraz wejdź do phpmyadmin i sprawdź to przy danym polu.
kalafior122
nadal nic sad.gif(((
ExtazyPro
może użyj mysql_set_charset wygrzebałem to więc nie pytaj jak/gdzie to wstawic ..
chyba nie biggrin.gif
"Jest to preferowana metoda zmiany kodowania. Korzystanie z mysql_query () , aby ustawić go (np. SET NAMES utf8 ) nie jest zalecane"
kalafior122
to służy chyba do czegoś innego tongue.gif

@ref
kondziu9516
Wpisz sobie takie coś zaraz po połączeniu z bazą

  1. mysql_query ("SET NAMES 'utf8' COLLATE 'utf8_polish_ci'"); //kodowanie


I co działa??
konieczko88
Hej podłączę się do tematu... Wiem że temat wałkowany itp ale żadne z podawanych rozwiązań typu "mysql_query("SET NAMES 'utf8' COLLATE 'utf8_polish_ci'");" mi nie pomogło więc postanowiłem zapytać. Oto moja konfigutacja:

mysql> SHOW VARIABLES LIKE 'char%';
+--------------------------+--------------------------+
| Variable_name | Value |
+--------------------------+--------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\MySQL\share\charsets\ |
+--------------------------+--------------------------+


mysql> SHOW VARIABLES LIKE 'collation%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_unicode_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+


mysql> SHOW CREATE database test;

| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE
utf8_unicode_ci */ |



mysql> SHOW CREATE table loginy;

loginy | CREATE TABLE `loginy` (
`id` int(11) NOT NULL auto_increment,
`plec` varchar(255) character set utf8 collate utf8_polish_ci default NULL,
PRIMARY KEY (`id`)
ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |


Po wpisaniu w konsoli mysql mam krzaki:
mysql> select * from loginy;
+----+------+
| id | plec |
+----+------+
| 1 | opl |
| 2 | ¢op |
+----+------+


Jednak po ustawieniu : 'set names latin1;' krzaków nie ma:

mysql> set names latin1;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from loginy;
+----+------+
| id | plec |
+----+------+
| 1 | opl |
| 2 | óop |
+----+------+

Wiem, że latin1 nie ma polskich znaków... Jednak nie mam pojęcia jaki błąd popełniłem, że nie widzę polskich znaków w konsoli mysql dla utf8 ale dla latin1 już tak questionmark.gif?

Podczas próby wyświetlania tej pozycji w Mozilli też mam krzaki: ¢op
mam ustawione:
- charset=utf-8
- wszystkie możliwe kombinacje typu:
mysql_query("SET NAMES 'utf8'");
mysql_query("SET character_set_connection=utf8_polish_ci");
mysql_query("SET character_set_client=utf8_polish_ci");
mysql_query('SET character_set_results=utf8_polish_ci');
mysql_query("SET NAMES 'utf8' COLLATE 'utf8_polish_ci'");
mysql_query("SET CHARACTER_SET utf8_unicode_ci");
- plik zapisywałem w formacie: UTF-8 oraz UTF-8 (bez BOOM)

Plik my :
# CLIENT SECTION
default-character-set=utf8

# SERVER SECTION
default-character-set=utf8
character_set_server=utf8
collation-server=utf8_general_ci
skip-character-set-client-handshake

Już kolejny dzień z tym walczę. Pomocy...



To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.