Autor Zpráva
Jan Zabloudil
Profil
Ahoj,
Mám skript pomocí, kterého upravuji data v tabulce (v databazi MySQL)

Skript :

<?php
$db = mysql_connect('localhost', 'root', 'heslo') or die('Nemohu se připojit. Zkontrolujte prosím připojení k serveru.');
      mysql_select_db('moviesite', $db) or die(mysq_error($db));
?>  
<!DOCTYPE html>
<html lang='cs'>
  <head>
    <title>Potvrzení transakce</title>
    <meta charset='utf-8'>      
  <body>
    <?php       
    switch ($_GET['action']) {
      case 'pridat':
        switch ($_GET['type']) {
          case 'movie':
            $kodovani = mysql_query("SET NAMES 'UTF8'");          
            $query = 'INSERT INTO
                movie
                    (movie_name, movie_year, movie_type, movie_leadactor,
                    movie_director)
                VALUES
                    ("' . $_POST['movie_name'] . '",
                     ' . $_POST['movie_year'] . ',
                     ' . $_POST['movie_type'] . ',
                     ' . $_POST['movie_leadactor'] . ',
                     ' . $_POST['movie_director'] . ')';
            break;
      }
      break;
    case 'upravit':
      switch($_GET['type']){
        case 'movie':
          $query = 'UPDATE movie SET
                      movie_name = "'.$_POST['movie_name'].'",
                      movie_year = '.$_POST['movie_year'].',
                      movie_type = '.$_POST['movie_type'].',
                      movie_leadactor = '.$_POST['movie_leadactor'].',
                      movie_director = '.$_POST['movie_director'].'
                    WHERE movie_id = '.$_POST['movie_id'];  
        break;              
        }  
        break;
    }
      
    if(isset($query)){
    $result = mysql_query($query, $db) or die(mysql_error($db));
    }
    ?>                           
    <p>Hotovo!</p>
  </body>
</html>

Upravené záznamy se mi ale špatně uloží - místo českých znaků se objeví - např. film Božský Bruce 2 se uloží jako Božský Bruce 2.
Nevíte jak tomu zabránit?
Ted jsem přišel proč se mi to ukládá do databáze takto - problém je, že už je to takhle uložené v $_POST - která se plní daty, které jsou získány :
Z formuláře ze skriptu :

// takto se naplní formulář daty - poté se to jenom vloží do formulářových prvků -ale v tu chvíli jsou hodnoty ještě správně, prostě se to zkazí ve chvíli, když hodnotu upravím
if($_GET['action'] == 'upravit'){
  // Načíst informaci o záznamu.
  $kodovani = mysql_query("SET NAMES 'UTF8'");
  $query = 'SELECT movie_name, movie_type, movie_year, movie_leadactor, movie_director
            FROM movie
            WHERE movie_id = '.$_GET['id'];
            $result = mysql_query($query, $db) or die(mysql_error($db));          
            extract(mysql_fetch_assoc($result));  

Děkuji za odpověď
juriad
Profil
mysql_query("SET NAMES 'UTF8'");
prováděj vždy, jakmile se připojíš k databázi. Ty kódování nastavuješ jen když přidáváš film.
Jan Zabloudil
Profil
vyřešeno!!

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0