| Autor | Zpráva | ||
|---|---|---|---|
| aha Profil |
Ahoj,
prošel jsem dotazy na tomto fóru, které se týkají kódování a MySQL a odpověď jsem nenašel. Mám tento skript: <?php
# PŘIPOJENÍ K SERVERU
$spojeni=mysql_connect( 'localhost', 'xxx', 'xxxx') or die ('Spojení se nepodařilo navázat!');
# VYTVOŘENÍ DATABÁZE
$databaze="CREATE DATABASE IF NOT EXISTS ovoce CHARACTER SET utf8";
$result=mysql_query($databaze) or die ('Databázi se nepodařilo vytvořit!!!');
# VÝBĚR DATABÁZE
mysql_select_db('ovoce') or die ('Spojení s databází se nezdařilo!!!');
# VYTVOŘENÍ TABULKY PRODUCT
$table="CREATE TABLE IF NOT EXISTS product (
rowID INT(11) NOT NULL auto_increment,
productid VARCHAR(10) NOT NULL,
name varchar(40) NOT NULL,
price decimal(5,2) NOT NULLl,
description mediumtext NOT NULL,
PRIMARY KEY (rowID))
CHARACTER SET utf8,
COLLATE utf8_czech_ci";
$result=mysql_query($table) or die ('Tabulku se nepodařilo vytvořit!!!');
?>Ten mi úspěšně vytvoří db a table s požadovaným kódováním a porovnáváním (utf8_general_ci a porovnávání utf8_czech_ci). Problém nastává když db "krmím" daty ze stránky html (charset má utf8). Jakmile dojde na háčky a čárky tak v PMA nepřečtu nic. Poradí někdo kde je chyba? Není to v nastavení PMA? |
||
| Nox Profil |
#2 · Zasláno: 7. 9. 2009, 16:36:23
Ano, klikni na Hlavní strana a nastav Porovnávání pro toto připojení k MySQL
V anglickém to určitě najdeš taky |
||
| Kajman_ Profil * |
#3 · Zasláno: 7. 9. 2009, 16:39:55
aha:
Po každém připojení si nastavte set names viz. faq. http://diskuse.jakpsatweb.cz/.sandbox/?action=vthread&forum=28&topic=37836 |
||
| aha Profil |
#4 · Zasláno: 7. 9. 2009, 17:42:59
Nox:
Díky, tam mám nastaveno utf8_czech_ci, Jazyk mám na Česky-Czech a přesto to nefunguje! Kajman_: Taky díky, koukal jsem na to už předtím, než jsem položil dotaz. Nefunguje nic z toho. Koupil jsem si knížku: phpMyAdmin - efektivní správa MySQL, autor: Marc DeLisle, vydal: Zonerpress. Zkoušel jsem nastavení PMA podle ní, ale mám verzi z Vertriga tzn. "ořezaný" soubor config.inc.php, tak jej zkusím nahradit orig. PMA a uvidím. Už opravdu nevím co s tím. Dám vědět pokud na něco přijdu, protože je to zde často řešený problém. |
||
| Kajman_ Profil * |
#5 · Zasláno: 7. 9. 2009, 21:04:01
Když vložíte data z pma, tak jsou v pma dobře?
|
||
| aha Profil |
#6 · Zasláno: 8. 9. 2009, 08:54:23
Kajman_:
Myslíte, když je vložím přímo do PMA? Pokud ano, tak odpověď je - ano, jsou správně. |
||
| Kajman_ Profil * |
#7 · Zasláno: 8. 9. 2009, 09:01:16
Tak nehledejte problém v pma. Hledejte ho ve vkládacím skriptu. Ještě třikrát zkontrolujte, zda tam po připojení nastavujete set names na kódování, ve kterém je html formulář!
|
||
| aha Profil |
#8 · Zasláno: 8. 9. 2009, 10:00:57
Vkládací formulář je vytvořen v PsPadu (kódování utf-8), nastavení znakové sady:
<meta http-equiv="content-type" content="text/html; charset=utf-8"> Kód zpracování formuláře - modifikace_dat.php: <?php
# PŘIPOJENÍ K SERVERU
$spojeni=mysql_connect( 'localhost', 'xxx', 'xxxx') or die ('Spojení se nepodařilo navázat!');
# VÝBĚR DATABÁZE
mysql_select_db('ovoce') or die ('Spojení s databází se nezdařilo!!!');
# vložení získaných dat
if(isset($_POST['submit'])){
# přiřazení hodnot odeslaných metodou POST proměnným
$productid=$_POST['productid'];
$name=$_POST['name'];
$price=$_POST['price'];
$description=$_POST['description'];
echo "productid: $productid<br />";
echo "name: $name<br />";
echo "price: $price<br />";
echo "description: $description";
# vložení získaných hodnot do tabulky product
$sql="INSERT INTO product SET productid='$productid', name='$name', price='$price', description='$description'";
$vysledek=mysql_query($sql) or die ('Výrobek se nepodařilo vožit');
echo "Výrobek úspěšně vložen!!!";
mysql_close();
}
?>
Kód pro vytvoření databáze a tabulky viz. výše. Nikde tam problém nevidím. Paradoxní je, že když načtu data z db (skriptem), tak se ty co jsou v PMA zkomolené zobrazí správně, a ty "ručně" upravené (správně zobrazené v PMA) se zbrazí špatně - myslím tím v prohlížeči FF - znaková sada nastavena na utf-8. IMHO asi to opravdu bude nějaký problém s nastavením v PMA. |
||
| Kajman_ Profil * |
#9 · Zasláno: 8. 9. 2009, 10:05:09
Proč ignorujete radu #3?
|
||
| aha Profil |
#10 · Zasláno: 8. 9. 2009, 10:51:28
Jestli myslíte to SET NAMES utf8
, tak to jsem vyzkoušel a nezabíralo to. Nicméně zkusím ještě jednou... |
||
| aha Profil |
#11 · Zasláno: 8. 9. 2009, 10:58:27
Kajman_:
Díky moc, zkusil jsem ještě jednou a funguje to perfektně. Asi jsem předtím někda udělal chybku. |
||
|
Časová prodleva: 17 let
|
|||
Toto téma je uzamčeno. Odpověď nelze zaslat.
0