Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MYSQL]Dziwny problem z mysql
Watt
post
Post #1





Grupa: Zarejestrowani
Postów: 372
Pomógł: 1
Dołączył: 13.06.2008

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


Witam,

Mam dziwny problem z mysql. Mam tagi u siebie na forum i chciałem zamienić znaki z pytajnika na pauze itd.
Napisałem sobie funkcję z update funkcja niby działa, ale zmienia polskie lierty na pytajniki, więc zrobiłem test:
Kod
ęąćżźółćńłśę

zamieniło na
Kod


Próbowałem zmieniać kodowanie (w phpmyadmin) z utf_general na utf_polish, ale nie działa. CO powiniem zrobić?

Kod:
  1. <?php
  2.  
  3. $link = mysql_connect('host', 'user', 'pass');
  4. mysql_select_db("tablica",$link);
  5.  
  6. $query10 = mysql_query("SELECT tid, subject FROM `mybb_threads` WHERE tags!=''") or die('Blad polacznia');
  7.  
  8. while($fetch = mysql_fetch_array($query10))
  9. {
  10.       $tagi = $fetch['subject'];
  11.       echo $tagi."</br>";
  12.        
  13.       $tagi = str_replace('"', "", $tagi);
  14.       $tagi = str_replace("?", "-", $tagi);
  15.       $tagi = str_replace("&", "-", $tagi);        
  16.       $tagi = str_replace(".", "", $tagi);    
  17.       $tagi = str_replace(".", "", $tagi);    
  18.       $tagi = str_replace("(", "", $tagi);  
  19.       $tagi = str_replace(")", "", $tagi);  
  20.  
  21.       //$edit = "UPDATE `mybb_threads` SET tags = '' WHERE tid = '".$fetch['tid']."'";
  22.      $edit = "UPDATE `mybb_threads` SET tags = '".$tagi."' WHERE tid = '".$fetch['tid']."'";
  23.  
  24.      mysql_query($edit);
  25. }
  26. ?>


Ten post edytował Watt 17.05.2009, 18:37:36
Go to the top of the page
+Quote Post
Darti
post
Post #2





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


a set names utf8 nie dziala ?
Go to the top of the page
+Quote Post
Watt
post
Post #3





Grupa: Zarejestrowani
Postów: 372
Pomógł: 1
Dołączył: 13.06.2008

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


Cytat(Darti @ 18.05.2009, 00:39:13 ) *
a set names utf8 nie dziala ?

Nie za bardzo wiem co to jest. Cała baza jst kodowana w UTF_general_ci.

Próbowałem dodać coś takiego:
  1. <?php
  2. $tagi = utf8_encode($tagi);
  3. ?>

zamieniło mi
Kod


Ten post edytował Watt 18.05.2009, 06:24:32
Go to the top of the page
+Quote Post
AngelusPL
post
Post #4





Grupa: Zarejestrowani
Postów: 16
Pomógł: 3
Dołączył: 16.08.2007
Skąd: Oświęcim

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


Musisz sobie ustawić "stronę kodową" dla połączenia do bazy mysql.

Dla ISO-8859-2:
mysql_query('SET CHARACTER SET latin2; SET NAMES latin2');
Dla UTF-8:
mysql_query('SET CHARACTER SET utf8;SET NAMES utf8;');

Powinno pomóc
Go to the top of the page
+Quote Post
Watt
post
Post #5





Grupa: Zarejestrowani
Postów: 372
Pomógł: 1
Dołączył: 13.06.2008

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


Chwilkeszkę, jestem początkujący - to mam dać przed wysłaniem zapytania czy po?
  1. <?php
  2.  
  3. $link = mysql_connect('host', 'user', 'pass');
  4. mysql_select_db("tablica",$link);
  5.  
  6. mysql_query('SET CHARACTER SET utf8;SET NAMES utf8;');
  7.  
  8. $query10 = mysql_query("SELECT tid, subject FROM `mybb_threads` WHERE tags!=''") or die('Blad polacznia');
  9.  
  10. while($fetch = mysql_fetch_array($query10))
  11. {
  12.      $tagi = $fetch['subject'];
  13.      echo $tagi."</br>";
  14.      
  15.      $tagi = str_replace('"', "", $tagi);
  16.      $tagi = str_replace("?", "-", $tagi);
  17.      $tagi = str_replace("&", "-", $tagi);        
  18.      $tagi = str_replace(".", "", $tagi);    
  19.      $tagi = str_replace(".", "", $tagi);    
  20.      $tagi = str_replace("(", "", $tagi);  
  21.      $tagi = str_replace(")", "", $tagi);  
  22.  
  23.      //$edit = "UPDATE `mybb_threads` SET tags = '' WHERE tid = '".$fetch['tid']."'";
  24.     $edit = "UPDATE `mybb_threads` SET tags = '".$tagi."' WHERE tid = '".$fetch['tid']."'";
  25.  
  26.     mysql_query($edit);
  27. }
  28. ?>

tak?

@Edit: Zrobiłem tak i pokazało się:
Kod


Ten post edytował Watt 18.05.2009, 07:19:45
Go to the top of the page
+Quote Post
AngelusPL
post
Post #6





Grupa: Zarejestrowani
Postów: 16
Pomógł: 3
Dołączył: 16.08.2007
Skąd: Oświęcim

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


Witam

Tak jak masz teraz.
Widzę, że wcześniej napisałeś że masz bazę kodowaną w UTF-8 to zostaw linię z UTF-8 a tą z latin2 wyrzuć.
Go to the top of the page
+Quote Post
slawny
post
Post #7





Grupa: Zarejestrowani
Postów: 214
Pomógł: 26
Dołączył: 7.11.2007
Skąd: Warszawa

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


Po połączeniu a przed selectami daj
  1. <?php
  2. mysql_query ("SET NAMES utf8");
  3. mysql_query (" SET collation_connection = utf8_general_ci");
  4. ?>
Go to the top of the page
+Quote Post
Watt
post
Post #8





Grupa: Zarejestrowani
Postów: 372
Pomógł: 1
Dołączył: 13.06.2008

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


Teraz to w ogóle zwrócił mi cuda:
z:
Kod
ęąćżźółćńłśę, teeeeeeeeeeeeeeeeeeeeeeest


zrobiło


Kod
�������Ÿ�º�³������������
Go to the top of the page
+Quote Post
slawny
post
Post #9





Grupa: Zarejestrowani
Postów: 214
Pomógł: 26
Dołączył: 7.11.2007
Skąd: Warszawa

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


A jak masz kodowany plik?
Go to the top of the page
+Quote Post
Watt
post
Post #10





Grupa: Zarejestrowani
Postów: 372
Pomógł: 1
Dołączył: 13.06.2008

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


bez kodowania, po prostu 'echuje' wiersze.
Go to the top of the page
+Quote Post
sowiq
post
Post #11





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Było setki razy - jest nawet przypięty temat. Wystarczyło się wysilić i poszukać.
Go to the top of the page
+Quote Post
slawny
post
Post #12





Grupa: Zarejestrowani
Postów: 214
Pomógł: 26
Dołączył: 7.11.2007
Skąd: Warszawa

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


Cytat(Watt @ 18.05.2009, 10:47:57 ) *
bez kodowania, po prostu 'echuje' wiersze.


No jak to bez, musi być jakoś kodowany.
Czy to utf-8, utf-15, iso czy jakiś inny...
Może faktycznie poczytaj temat, który @sowiq podał.
Generalnie zasada jest prosta:
albo plik w kodowaniu bazy, albo baza w kodowaniu pliku, no i do tego set names
Go to the top of the page
+Quote Post
Watt
post
Post #13





Grupa: Zarejestrowani
Postów: 372
Pomógł: 1
Dołączył: 13.06.2008

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


Po użyciu metody usera swoiq

Kod
Ä(tm)ąćżźółćńłśÄ(tm)
Go to the top of the page
+Quote Post
slawny
post
Post #14





Grupa: Zarejestrowani
Postów: 214
Pomógł: 26
Dołączył: 7.11.2007
Skąd: Warszawa

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


Dam sobie rękę uciąć, że to kodowanie pliku. Ściągnij sobie edytor np: ked i otworz w nim ten plik. Po otwarciu będziesz miał napisane w nawiasach jakie kodowanie ma plik, bo pewnie pobierasz bazy utf-8 a plik jest iso i wszystko sie.......
Go to the top of the page
+Quote Post
Watt
post
Post #15





Grupa: Zarejestrowani
Postów: 372
Pomógł: 1
Dołączył: 13.06.2008

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


Ja używam notepad++, zaraz pobiorę twój program.

Działa (chyba)! dziekuję!

Ten post edytował Watt 18.05.2009, 10:36:38
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.09.2025 - 16:13