Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP-MYSQL Jak ograniczyć polskie znaki które ukazują się z błędem?
Forum PHP.pl > Forum > PHP
przem1969
Mam na portalu swoim takie zapytanie z Bazy




  1. SELECT id,timestamp, SUBSTRING(title,1,56) AS 'title_substring'
  2. FROM tabela
  3. ORDER BY id DESC
  4. LIMIT 26,25 ;
  5.  


  1. $result=mysql_query($query);
  2. $num=mysql_numrows($result);
  3. $i=0;
  4. while ($i < $num) {
  5. $id=mysql_result($result,$i,"id");
  6. $timestamp =mysql_result($result,$i,"timestamp");
  7. $title_substring=mysql_result($result,$i,"title_substring");
  8. $timestamp = date("d.m.Y, H:i:s", $timestamp);





To zapytanie działa prawidłowo ! Lecz gdy natrafia na polski znak wyświetla się rąb ze znakiem zapytania. Jak to opisać w php? pewnie już ktoś miał taki problem .
jackraymund
jest kilka rzeczy które mogłeś pominąć
po 1 wybrać formatowanie, polecam utf-8
wtedy w każdym pliku zmienić formatowanie na utf-8
na stronie do nagłówka dodać formatowanie utf-8
i na końcu zaraz po zalogowaniu do bazy wykonać takie zapytanie
  1. mysql_query("SET NAMES UTF8");
przem1969
Wydaje mi się ,że mnie nie rozumiesz. Na strinie jest kodowanie UTF8 .Nie jestem aż taki oststni. W bazie też. http://siatkowkaweb.pl rozwń menu w belce na dole. Trzeci artukuł własnie się tak zachowuje.
kiciafu
Ja robię tak:

1. kodowanie plików ANSI As UTF-8
2. Deklaracja utf w osnowie dokumentu html
3. Baza danych utf-8 i collation polish
4. Koniecznie zapytanie po połączeniu mysql_query("SET NAMES UTF8");
jak to jest ustawione mysql zwróci na 99% dobry rezultat, ostatnio walczyłem z dodatkowymi bibliotekami i tylko taka droga zagwarantowała sukces.
przem1969
Dziękuję będe walczył !
valkirek
Możliwe, że masz coś ze złym kodowaniem jednak tu nie tylko chodzi o mysql bo w php z funkcją substr() jest podobnie
  1. <?php echo substr('ał',0,2); ?>


U mnie wyświetla a i ten znak rombu ze znakiem zapytania. Zauważyłem to dawno temu ale nigdy się w ten problem nie zagłębiałem, kodowanie zawsze mam na utf 8 i to samo miałem na różnych hostingach.
przem1969
Cały portal wyświetla dobrze . Polskie znaki są wszędzie. Z bazy zaciąga artykuły też jest ok .Wydaje mi się ,żę jest wszytsko ok. Dzieje się to wtedy jak zauważyłeś kiedy wyciągam z bazy np. tytuły i skracam ich długość funkcją substring. Jeśli w czasie skrótu natrafi na polski znak to go źle interpretuej "jako błąd" Według Ciebie co mam poprawić w kodowaniu?
nospor
@valkirek bo w php funkcja substr dziala na pojednyczych bajtach, a polskie znaki maja dwa bajty wiec jak trafia na podwojny polski znak to go scina w polowie i bierze krzaka - normalka. By tego uniknac nalezy w php operowac na funkcjach z rodziny mb_, np mb_substr
http://pl1.php.net/manual/en/function.mb-substr.php

@przem1969 uzyj google: mysql substring utf8
przem1969
Dziękuje Panie Moderatorze. Wiedziałem ,żę jest taka funkcja w Php ale nie potrafię jej zastosowac. Nie jestm az taki dobry. MUSZE rozkminić to. Ale trening czyni mistrza więc sobie poradzę.!!Dziękuje.
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.