Ékezet helyén kérdőjel miért??

vojnar képe

Szia!

Egy node-ban futtatok egy sql-t. Semmi extra:

$s = "
 
SELECT `title`FROM `node`
";
 
$events=mysql_query($s);
 
while ($line = @mysql_fetch_array($events, MYSQL_ASSOC)) 
  {
  foreach ($line as $col_value=> $value) 
     {
      $$col_value= $value;
     echo $col_value, ": ", $value, "<br><br>";
  }
 
}
 
echo "áéőóúűüö";

Az első echo az kérdőjeleket rak be az ékezetes betűk helyére. Az oldal az utf-8 alapértelmezetten, amit nem is lehet megváltoztatni mert akkor minden elkúródik az egész oldalon.

A második echo az természetesen jó.

Van valakinek vmi ötlete h ilyenkor mit kell csinálni?

Fórum: 
eMeLA képe

A Drupalban vannak beépített adatbáziskezelő függvények. Ezek jól kezelik az ékezetes karaktereket is (legalábbis nekem nem volt gondom vele)

$s = "SELECT title FROM {node}";
 
$events=db_query($s);
 
while ($line = db_fetch_array($events))
  {
  foreach ($line as $col_value=> $value)
     {     
     echo $col_value, ": ", $value, "<br><br>";
  }
 
}
 
echo "áéőóúűüö";

Megjegyzem a $$col_value= $value; sornak mi értelme van ?

Ha nem az alap adatbázisból kérdeznél adatot le, arra is van lehetőség, csak be kell állítani a settings.php-ban.

Érdemes beírni a fenti függvényneveket a http://api.drupal.org/ keresőjébe.

0
0

...mit tudok: http://web.termuves.hu

kkwx képe

nekem is ez a problémám, és érdekelne, hogy konkrétan mik ezek a beépített adatbáziskezelő függvények amik jól kezelik az ékezeteket, hogy néz ki a szintaktikája?
én így használom:

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

és nem kezeli az ékezeteket, csak megjelenik a fekete négyzet közepén egy kérdőjellel :S
előre is kösz a választ :)

0
0
Den képe

nekem is ez a problémám, és érdekelne, hogy konkrétan mik ezek a beépített adatbáziskezelő függvények amik jól kezelik az ékezeteket, hogy néz ki a szintaktikája?

Ha minden kötél szakad és sehogysem jössz rá, mi lehet az, akkor nincs más hátra, puskázni kell: el kell olvasni a dokumentációt.

A db-hez kapcsolódás után add ki a: SET NAMES "utf8" sql parancsot.

Ha szeretnél helyes, ékezetes megkülönböztetés is a lekérdezések során, ahol az a != á-val, akkor az adatbázis tábla collation-je utf8_hungarian_ci legyen.

Ekkor a db kapcsolódás után a collationt is meg kell adni a db-nek:

SET NAMES "utf8" collate "utf8_hungarian_ci"

A tejles doksi itt található: http://dev.mysql.com/doc/refman/5.0/en/charset.html

0
0
york képe

Legyszives uj kerdes uj tema...
Ez egy 2 evvel ezelotti tema...
Koszonjuk!

0
0
alippai képe

Ott a kérdésedre a válasz.

0
0

Lippai Ádám
young element

nevergone képe

Ha Drupalt használsz, akkor ne a MySQL függvényeit használd, mert az elég FAIL, hanem a Drupal adatbázis-kezelő rétegét. A "PHP 24 óra alatt" című könyvet meg dobd el messzire. :)

0
0
alippai képe

Egyátalán nem fail, csak ne csodálkozzon az ember, ha a kapcsolata véletlenül nem helyes karakterkódolású.

0
0

Lippai Ádám
young element