[ epitaph @ 22.05.2008. 04:28 ] @
Imam problem sa zakovima u bazi...

Postoji li nacin da hijeroglife, koji trenutno zamjenjuju nasa slova sa kvacicama zamjenim u normalna slova sa kvacicama.

Znaci umjesto ć kod mene se u MySQL bazi pojavljuje ć, umjesto š pojavljuje se Å¡, umjesto ž = ž itd... Postoji li neka SQL funkcija kojom bi se ova slova izmjenjala... Teksta u bazi ima mnogo, jer su u pitanju podaci iz fotoOglasnika, naslovi, opisi te podaci o objektima (nekretninama).

Promijenio sam Collation iz dosadasnjeg "latin1_swedish_ci" u "utf8_unicode_ci" ali su slova ostala ista.
Na sajtu mi se ova slova normalno pojavljuju, ali mi na pojedinim mjestima prave probleme, npr. tamo gdje tekst ogranicavam (skracujem) php funkcijom, (uvodni tekstovi), ako se tekst zavrsi sa slovom koje sadrzi kvacicu ispisuje mi ? (u rombu)! I na jos nekim mjestima imam problema...

U pitanju je MYSQL 5

Zamolio bih vas za pomoc...?! Unaprijed hvala.
[ ban17 @ 22.05.2008. 08:54 ] @
Ja sam imao sličan problem, nisam uspeo da ga rešim preko mysql-a već sam to uradio na sledeći način.

Fajl za spajanje sa bazom bi trebalo otprilike da liči na ovaj , ako sajt nije rađen u PHP-u moraćeš da preradiš skript:
<?php
$mysql_server="localhost";
$mysql_user="root";
$mysql_pass="";
$mysql_database="ime_baze";
if (!$db=mysql_connect($mysql_server,$mysql_user,$mysql_pass)){die (mysql_error());}
if (!mysql_select_db($mysql_database, $db)){die ("Greška pri spajanju sa bazom <br />".mysql_error());}
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION='utf8_unicode_ci'");
?>

.... Obrati pažnju na zadnja tri reda, kada njih dodaš u fajl za spajanje sa bazom sve što ubuduće budeš radio u bazu će se upisivati normalno.

A za podatke koji su ti već u bazi: izvezi ih u SQL fajl i onda u njemu uradi SEARCH AND REPLACE kukica u naša slova :) . Možda će ti rešenje izgledati glupo ali ja sam na taj način za manje od pola sata prepravio bazu koja je izvezena zauzimala 85MB. I ako ti je izvezeni fajl veliki i editor blokira jer ne može da ga otvori zbog veličine, otvori ga preko UltraEdit-a on dobro obrađuje velike fajlove.

Ako imaš dovoljno prostora za svoju bazu da bi sajt bio dostupan dok izvoziš bazu i vraćaš prepravljenu bilo bi pametno da je podigneš pod drugim imenom i onda samo kad završiš ovo staru izbrišeš a novoj promeniš ime ili to odradiš u fajlu za povezivanje.
[ Shinhan @ 22.05.2008. 13:36 ] @
Citat:
epitaph: Imam problem sa zakovima u bazi...
Promijenio sam Collation iz dosadasnjeg "latin1_swedish_ci" u "utf8_unicode_ci" ali su slova ostala ista.


Greška!
utf8_unicode_ci nije dobro jer će ti Đ biti sortirano posle Ž. Promeni lepo na utf8_slovenian_ci da bi ti normalno sortirao. (Nisi ti jedini. Zašto ljudi ne biraju slovenian po defaultu? Zato što ne postoji utf8_croatian_ci ili utf8_serbian_ci?)

A za popravljanje slova, uradi kao i ban17 što ti je rekao. Naš sajt isto sad migriramo na utf8 stim što je export naše baze jedno 800MB (bez log tabela koje netreba konvertovati) tako da to malo sporije radi. I ja sam umesto ručnog editovanja skrpio php skript koji čita jednu po jednu liniju u tom exportu i zamenjuje pogrešne sa ispravnim karakterima. Uključujući i srpske entitete (&scaron; &#269;).
Treća varijanta je da napraviš php skript koji prvo čita strukturu svake tabele u bazi, i za svaki red u toj tabeli konvertuje srpska slova u tekstualnim poljima.
Problem sa trećim pristupom je što će ti neko vreme sajt biti pola ok/pola kvačice i svaki bug će ti uništiti važne podatke. (u ban17 varijanti bug pri konvertovanju je lako popraviti).

[ epitaph @ 23.05.2008. 15:43 ] @
Hvala na odgovorima, pokusacu danas da sredim bazu sljedeci vasa upustva... pa cu vam javiti kako i sta sam uradio.. nadam se da ce uspjeti...

Automatski sistem za slanje greski kod MYSQL upita mi u posaljednje vrijeme salje 2-3 puta dnevno da je doslo do greske i to najcesce kod prolaska nekog od Google "pauka", mislim da je to povezano sa hijeroglifima, jer su mi url-ovi SEF, na starom hostu na kojem je baza bila MYSQL4 ovih gresaka nije bilo, nakon prelaska na VPS i prebacivanja citavog naloga putem VHM na VPS i MYSQL 5 bazu hijeroglifi su ostali ali mi se sada dodatno nekoliko puta dnevno javlja i da greska. Nadam se da ce nestati nakon sto sredim bazu.

Hvala na odgovorima....
[ epitaph @ 24.05.2008. 01:25 ] @
Imam jos jedan problem, sajt se na bazu povezuje preko klase ADODB, to je folder u kome se nalazi mnogo php fajlova a ni u jednom se ne nalazi cista (knjiska) konekcija na MySQL bazu, tako da ne znam gdje da priljepim ovaj kod koji ste mi preporucili?!

Code:
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION='utf8_unicode_ci'");


Pretrazivajuci Google shvatio sam da se u ADODB, ovaj kod (bez izmjena) ne moze samo priljepiti na neki od fajlova, ali nigdje nisam nasa konkretan primjer kako da to uradim.


Inace ova greska sa znakovima mi se pojavljuje samo kod tabele - odnosno reda sa nazivom sadrzaja. U svim ostalim tabelama se slova upisuju potpuno normalno!?

Da li to znaci da onda nema potrebe da dodajem ovaj kod kod konekcije sa bazom, tj. da li je moguce da je problem u nekom od php fajlova koji obradjuju podatke unesene u polje "naziv", na istoj stranici se nalze sve ostala polja u kojima se podaci normalno upisu zajedno sa "kvacicama".
Prilikom uredjivanja naslov se normalno ispise "naziv", i bez pogleda na bazu nije moguce primjetiti da su nasa slova pogresno ispisana...