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 :).
db_
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
*----*----*
$node ? 'alma' : 'bor'
*----*----*
valóban
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 :)
mert maga a .php file, amibe ezt írtad
az nem utf8 kódolással van mentve, azabaj.
-
clear: both;
nem igazán Drupal kérdés
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.
Választ szeretnél? - Új kérdés, új téma - Tesztoldal - Trollkezelés - Frissítés
Olyan nincs, hogy nem működik
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.
--
Szabó Dénes - Internode.hu - Munkára fogott weblapok