Rozpadlá diakritika při výstupu z mysql
Ahoj,
mám problém s rozsypanou diakritikou při výstupu z mysql. Když to vypíšu klasicky, tak diakritika funguje.
MySQL_Connect("");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_connection=utf8");
mysql_query("SET character_set_results=utf8");
mysql_select_db("");
$navrat=MySql_QUERY("SELECT*FROM lcd WHERE typ='huawein'");
if(mysql_num_rows($navrat)==0) echo "Nic nebylo nalezeno";
else{
while(list($id, $typ, $model, $cena) = mysql_fetch_array($navrat)){
echo "$imodel</div></div></div>";
}
}
když ale použiju jiný kód, tak se mi čeština rozsype
<?Php
$cat=$_GET['cat'];
if(strlen($cat) > 0 and !is_numeric($cat)){
echo "Data Error";
exit;
}
$quer2="SELECT id,znacka,model,servis,cena FROM cenikservisu";
if(isset($cat) and strlen($cat) > 0){
$quer="SELECT cena FROM cenikservisu where id=$cat";
}else{$quer="SELECT cena FROM cenikservisu"; }
echo "<form method=post name=f1 action='konfigurator2.php'>";
echo "<select name='cat' onchange=\"reload(this.form)\"><option value=''>Vyber značku</option>";
foreach ($dbo->query($quer2) as $noticia2) {
if($noticia2['id']==@$cat){echo "<option selected value='$noticia2[id]'>$noticia2[servis]</option>"."<BR>";}
else{echo "<option value='$noticia2[id]'>$noticia2[servis]</option>";}
}
echo "</select>";
echo "<select name='subcat' >";
foreach ($dbo->query($quer) as $noticia) {
echo "<option value='$noticia[cena]'>$noticia[cena]</option>";
}
echo "</select>";
echo "<input type=submit value=Submit>";
echo "</form>";
?>
Funkce reload
<SCRIPT type="text/javascript" charset="utf-8">
function reload(form)
{
var val=form.cat.options[form.cat.options.selectedIndex].value;
self.location='konfigurator2.php?cat=' + val ;
}
</script>
Připojení k db
<?Php
$dbhost_name = "***";
$database = "*****";
$username = "****";
$password = "****";
try {
$dbo = new PDO('mysql:host='.$dbhost_name.';dbname='.$database, $username, $password);
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
?>
Věděl by někdo kde mám chybu? Díky moc za radu
Ahoj,
Ajax přenáší data tuším jen v UTF8, což máš dobře nastavené.
Pokud máš ale jinak definované kódování v databázi, je potřeba
i v druhém případě definovat to:
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_connection=utf8");
mysql_query("SET character_set_results=utf8");
Většinou se to dělá tak, že se to přemístí do samostatného "connection" souboru a
ten se jenom includuje.
právě, že úplně nevím kam a jak to do toho kódu propašovat
Funguje mi ve všech aplikacích tento kód:
Díííííííkyyy mooooc
a datábazi mám v utf8_czech_ci