Ékezetes karakterek kezelése Drupalban SQL lekérdezés után...

kkwx képe

hellósztok
egy olyan problémám lenne, hogy lekérdezek adatokat Drupalban SQL-el, de nem kezeli az ékezetes karaktereket, hanem a helyükre egy fekete négyzetet tesz kérdőjellel a közepén :S. Érdekelne, hogy ezt, hogyan lehetne kijavítani?

Így kapcsolódok az adatbázishoz (csak azért írom le, hátha itt a hiba :) ):

$kapcsolat = mysql_connect("localhost", "jack", "admin");
if (!$kapcsolat) die("Nem sikerült kapcsolódni az adatbázishoz!");
mysql_select_db("avh", $kapcsolat) or die("Nem sikerült kiválasztani az adatbázist!");

És itt a lekérdezésem:

$nev = mysql_result(mysql_query("SELECT value FROM profile_values WHERE uid='$az' AND fid=2"), 0);
echo "$nev";

Volt egy hasonló téma korábban (http://drupal.hu/forum/%C3%A9kezet-hely%C3%A9n-k%C3%A9rd%C5%91jel-mi%C3%...), de ott azt mondták nyissak új témát. Az ottani válaszok alapján próbáltam valamit kiokoskodni.

Megpróbáltam beilleszteni az adatbázis-kapcsolat után ezt a sort:

SET NAMES "utf8" collate "utf8_hungarian_ci";

de nem működött. Majd a http://dev.mysql.com/doc/refman/5.0/en/charset.html oldalt tanulmányoztam, és kipróbáltam az ott leírt szintaktikát (SET NAMES 'utf8' [COLLATE 'utf8_hungarian_ci'];), de ugyanúgy rossz volt.

Majd átállítottam a PHPMyAdmin-ban a "MySQL kapcsolat egyeztetés:"-t "utf8_hungarian_ci"-re, de semmi változás nem volt utána :s...

Most épp a http://api.drupal.org/api/group/database/6 oldalt tanulmányozom, csak ez egyenlőre még kicsit magasnak tűnik :S. Nincs esetleg valakinek ötlete egy megoldásra? Vagy ez alapján nem tudná valaki elmagyarázni, hogyan is kéne átalakítanom a lekérdezésemet? (esetleg átalakítaná valaki? :) ).

Minden segítséget nagyon köszönök előre is. Még a legkisebb apróság is jól jön, ha azzal jó irányba haladok :).

Fórum: 
Lavjaman képe

Már megoldották neked itt

Egyébként nincs nagy varázslás a drupal adatbázis-függvényekben, csak meg kell tanulni használni őket, ugyanúgy, ahogy megtanultad a php mysql-kezelő függvényeinek a használatát

itt egy csokor belőle
db függvények

0
0

*----*----*

$node ? 'alma' : 'bor'

*----*----*

kkwx képe

valóban, már látom is, megpróbáltam és működik rendesen :), csak egy olyan gondom van, hogy most adatbázisba írásnál az Ű és Ő helyett kérdőjeleket tesz :S. Ezt hogy lehet kivédeni, vagy javítani?

Ez a függvényem:

$f = "árvíztűrő tükörfúró";
$events=db_query("INSERT INTO {foglal_reg} (name) VALUES ('%s')", $f);

és ezt írja az adatbázisba:

"árvízt?r? tükörfúró"

valahogy másféleképpen kéne lekezelni vagy valami SQL beállítás kéne a PHP MyAdmin-ban, vagy nem tudom :S

Előre is kösz, a legapróbb segítséget is :)

0
0
aboros képe

az nem utf8 kódolással van mentve, azabaj.

0
0

-
clear: both;

nevergone képe

Szerencsére kaptál többféle segítséget is, de érdemes tudnod, hogy ez igazából nem Drupal, hanem PHP és SQL kérdés, szóval szerintem először azokat az ismereteidet szedd rendbe, sokat segít.

0
0
Den képe

Megpróbáltam beilleszteni az adatbázis-kapcsolat után ezt a sort:

SET NAMES "utf8" collate "utf8_hungarian_ci";

de nem működött. Majd a http://dev.mysql.com/doc/refman/5.0/en/charset.html oldalt tanulmányoztam, és kipróbáltam az ott leírt szintaktikát (SET NAMES 'utf8' [COLLATE 'utf8_hungarian_ci'];), de ugyanúgy rossz volt.

Kérdés: hogy illesztetted be? mysql_query('SET NAMES "utf8" collate "utf8_hungarian_ci"'); módon, ugye?

Olyan nincs, hogy nem működik. Ha valami gond van, akkor kiír egy hibát, valahova ír egy log bejegyzés, hogy mi a baja. Azt végig kell nézni, elemezni, kinyomozni, hogy miért van az a baja, és megoldani. Ha nem ír logot, akkor be kell állítani, hogy írjon.

Ha myadminban átállítod a kapcsolatot az myadminnak szól csak, szerintem.

A "profile_values" tábla collation (összevetés magyarul - de aki ebből kitalálja, hogy mi is lehet ez...) milyen? Mire van állítva? Utf-8 adatokat tolsz egyátalán a táblába?

Az sql querydben a $az értékre meg figyelj. Ebben az esetben szép kis ún sql-injection hibára, törésre ad lehetőséget. Nem biztos, nem látszik, mit művelsz az azonosítóval, de jelenleg 99.9% esélyt adok annak, hogy nincs lekezelve.

Mindazonátal, ez itt "extra", egyátalán nem drupalos kérdés. De ezt majd az adminok.

0
0