Prodej projektu Duchod.cz - SLEVA
Zobrazují se odpovědi 1 až 3 z 3

MySQL problém s kódováním

  1. Zdravím, snažím se zapsat informace do DB a vůbec se mi to nedaří.
    Source:
    Kód:
    <input type="text" name="label" placeholder="očíslování TÉMATA" class="short" autocomplete="off">
    <input type="text" name="name" placeholder="Český název TÉMATA" autocomplete="off">
    <input type="text" name="url_form_cz" placeholder="Česká forma URL" autocomplete="off">
    <input type="submit" name="send_topic" value="Přidat do DB">
    Kód:
    <?php
    
    
    		if(isset($_POST['send_topic']))
    			{
    				$mysqli = new mysqli("localhost", "root", "", "matematika");
    				$mysqli->query("SET NAMES 'utf-8'");
    				$label = $mysqli->real_escape_string($_POST['label']);
    				$name = $mysqli->real_escape_string($_POST['name']);
    				$url_form_cz = $mysqli->real_escape_string($_POST['url_form_cz']);
    				if($label != "")
    				{
    					if($name != "")
    					{
    						if($url_form_cz != "")
    						{
    							$mysqli->query("INSERT INTO math_topics values (ID, '".$label."', '".$name."', '".$url_form_cz."')");
    							echo "<br>Přidáno do DB
    										<meta http-equiv=\"refresh\" content=\"1\">";
    						}
    						else
    						{
    							echo "<p>Url_form_cz je prázdný!</p>";
    						}
    					}
    					else
    					{
    						echo "<p>Name_cz je prázdný!</p>";
    					}
    				}
    				else
    				{
    					echo "<p>Label je prázdný!</p>";
    				}
    			}
    
    	?>
    DB vypadá takto:
    Kód:
    Struktura tabulky `math_topics`
    --
    
    CREATE TABLE `math_topics` (
      `ID` int(10) NOT NULL,
      `LABEL` varchar(255) COLLATE utf8_czech_ci NOT NULL,
      `NAME_CZ` varchar(255) COLLATE utf8_czech_ci NOT NULL,
      `URL_FORM_CZ` varchar(255) COLLATE utf8_czech_ci NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
    
    --
    -- Vypisuji data pro tabulku `math_topics`
    --
    
    INSERT INTO `math_topics` (`ID`, `LABEL`, `NAME_CZ`, `URL_FORM_CZ`) VALUES
    (1, '1', '+ěšščř', '+ěščřž'),
    (2, 'ěščř', 'ščřžýáí', 'čřžý');
    
    --
    -- Klíče pro exportované tabulky
    --
    
    --
    -- Klíče pro tabulku `math_topics`
    --
    ALTER TABLE `math_topics`
      ADD UNIQUE KEY `ID` (`ID`);
    
    ...
    když si všimnete, tak to z textu udělá blivajz, (1, '1', '+ěšščř', '+ěščřž'),
    (2, 'ěščř', 'ščřžýáí', 'čřžý');
    Děkuju vám za pomoc

  2. Co se právě děje na Webtrhu?
  3. A samotnou stránku html máš v utf-8? Vypadá to, že stringy nejsou v utf-8.

    Dobrá rada: používej PDO místo mysqli a v databázi kódování utf8_general_ci

  4. Kód:
    $mysqli->set_charset("utf8");
    A je to. Díky ;). Měl jsem to tam formulované jinak, proto to nešlo.

Hostujeme u Server powered by TELE3