Pereiti prie turinio

UTF-8 duomenų nuskaitymas iš mysql su php


Rekomenduojami pranešimai

Pasiėmiau raw script'ą, kuris rodytų paskutines 5 phpbb3 forumo temas.Apkarpiau tą scriptą savo kreivomis rankomis, kad tiktų mano poreikiams.Paskutinė problema - vietoje lietuviškų raidžių gaunu arba tarpus arba klaustukus.Žinau, kad problema su koduote, bet nežinau kaip padaryti, kad iš mysql normaliai nuskaitytų ir rodytų tekstą.

 

Dėkui už pagalbą, kodas apačioje :)

 

<?php
   // How Many Topics you want to display?
   $topicnumber = 5;
   // Change this to your phpBB path
   $urlPath = "./";

   // Database Configuration (Where your phpBB config.php file is located)
   include 'config.php';

   $table_topics = $table_prefix. "topics";
   $table_forums = $table_prefix. "forums";
   $table_posts = $table_prefix. "posts";
   $table_users = $table_prefix. "users";
   $link = mysql_connect("$dbhost", "$dbuser", "$dbpasswd") or die("Could not connect");
   mysql_select_db("$dbname") or die("Could not select database");

   $query = "SELECT t.topic_id, t.topic_title, t.topic_last_post_id, t.forum_id, p.post_id, p.poster_id, p.post_time, u.user_id, u.username
   FROM $table_topics t, $table_forums f, $table_posts p, $table_users u
   WHERE t.topic_id = p.topic_id AND
   f.forum_id = t.forum_id AND
   t.forum_id != 4 AND
   t.topic_status <> 2 AND
   p.post_id = t.topic_last_post_id AND
   p.poster_id = u.user_id
   ORDER BY p.post_id DESC LIMIT $topicnumber";
   $result = mysql_query($query) or die("Query failed");                                    

   print "<id=\"recent_topics\" height=\"170\">
   <table cellpadding='3' cellSpacing='2' width='150'>";
   while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {

   echo  "<tr valign='top'><td><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><font color=\"#FFCC00\"><b><a href=\"$urlPath/viewtopic.php?f=$row[forum_id]&t=$row[topic_id]&p=$row[post_id]#p$row[post_id]\" TARGET=\"_blank\">" .
   $row["topic_title"] .
   "</td></tr></font>";
   }
   print "</table></marquee>";
   mysql_free_result($result);
   mysql_close($link);
   ?>

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Iškart po prisijungimo prie duombazės pabandyk pridėti:

 

mysql_query("SET NAMES 'utf8'");

 

Jau buvau radęs tokį sprendimą anksčiau, pabandžiau dar sykį visgi rezultatų nematyti.

įdėjau:

   mysql_select_db("$dbname") or die("Could not select database");
   mysql_query("SET NAMES 'utf8'");

 

 

 

Dar patikrink savo php failiuko koduotę. Kadangi kaikada būna taip, kad pats failas užkoduotas Windows-1257 ar iso-8859-15 ir kai bando skaityti utf8 - win/iso char kodus supranta kaip savo koduotės, todėl ir rodo muses.

 

Hmz, nesu tikras kaip keisti tas php failiuko koduotes.Su notepad ++ pasirinkau Formatas > Koduoti UTF-8, tačiau vėlgi niekas nepasikeitė

Redagavo Rated
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Ar forumo duombazės koduotė - UTF-8 (o ne sena lietuviška)?

 

Dummas patarimas geras. Spausk "Save As..." ir apačioje (po bylos pavadinimu ir tipu) yra "Encoding:" - ar UTF-8?

Žinok noob'as aš kol kas mysql reikaluose tai nelabai ir žinau kur pažiūrėti.

post-17572-009189200 1286030433_thumb.png

Save as paspaudus nieko nėra su permission'ais

post-17572-072267700 1286030448_thumb.png

 

 

Encode in UTF-8 without BOM pabandyk.

Bandžiau ir bum ir ne bum, vis tiek neveikia ;D

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tai gal duomenu bazeje irasai surinkti naudojant windows-1257 koduote?pabandyk

header("Content-Type: text/html; charset=windows-1257",TRUE);

Jokių pokyčių

 

O duomenų bazėje žinutės rodomos su normaliomis raidėmis ar ne?

Taip, duomenų bazėje raidės normalios.

 

Mission impossible ;D

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Atsidarius puslapį su Firefox, paspausk ant "View -> Character Encoding". Ant kurios koduotės varnelė uždėta?

Dėkui chebra, pagaliau veikia.

 

Moralas toks,kad reikia dirbti šiek tiek plačiau atsimerkus :D

Redagavau tą failą kompe, ir peržiūrinėjau /forum/failas.php Nepamačiau, kad failą uploadinau ne į forum katalogą, o kažkur /forum/styles/... :D fail'as

 

Kai jau supratau kame esmė, panaudojau šitą

Iškart po prisijungimo prie duombazės pabandyk pridėti:

 

mysql_query("SET NAMES 'utf8'");

ir šitą

po <?php tego idek:

 

header("Content-Type: text/html; charset=utf-8",TRUE);

ir viskas ore.

 

Beje, gal žinot kaip man html faile atvaizduoti php failo turinį nenaudojant iframe ? Nes neveikia man ten php sidebar'e

Redagavo Rated
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Beje, gal žinot kaip man html faile atvaizduoti php failo turinį nenaudojant iframe ? Nes neveikia man ten php sidebar'e

 

Priklausomai nuo sistemos.

- Paprašiausiai įdėk šitą skriptą į tinklapio kodą.

- Sudėtingesnis įskiepio variantas.

 

Nuostabiai rekomenduoju antrą variantą.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Priklausomai nuo sistemos.

- Paprašiausiai įdėk šitą skriptą į tinklapio kodą.

- Sudėtingesnis įskiepio variantas.

 

Nuostabiai rekomenduoju antrą variantą.

Nėra ten jokio įskiepio, tiesiog sidebar.html

Neina kaip nors įkrauti pvz kaip iš html įkrauni css.Arba priskirti kažką panašaus kaip bb kodas

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...