Witam,


Napisalem sobie skrypty ktore tworza postac komiksowa i zapisuja ja w bazie danych.

Tutaj inicjalizacja jedej z tabel bazy danych :

  1. <?php
  2. $sql1 =
  3.        "CREATE TABLE IF NOT EXISTS char_main (
  4.            id int(11) NOT NULL auto_increment,
  5.            alias varchar(40) NOT NULL default '',
  6.            real_name varchar(80) NOT NULL default '',
  7.            lair_id int(11) NOT NULL default 0,
  8.            align enum('dobry', 'zły') NOT NULL default 'dobry',
  9.            PRIMARY KEY (id)
  10.            )";
  11. ?>


Nastepnie wprowadzam dane na temat postaci , czesc skryptu wyglada tak :

  1.        
  2.        <tr>
  3.            <td>Charakter:</td>
  4.            <td>
  5.                <input type="radio" name="align" value="dobry"
  6.                <?php if(isset($ch)) {
  7.                    echo($ch['align'] == 'dobry' ? 'checked' : '');
  8.                } ?>>
  9.                dobry<br>
  10.                <input type="radio" name="align" value="zły"
  11.                <?php if(isset($ch)) {
  12.                    echo($ch['align'] == 'zły' ? 'checked' : '');
  13.                } ?>>
  14.                zły
  15.            </td>
  16.        </tr>

Błąd dotyczy kolumny 'align' w bazie danych, przy pierwszych testach postac wprowadzala sie prawidlowo, a pole w bazie danych bylo uzupelniane bez problemu wartościami "dobry" lub "zły" :

Oraz wprowadzam dane do bazy danych :

  1. <?php
  2. $sql = "INSERT INTO char_main (id,lair_id,alias,real_name,align) " .
  3.           "VALUES (NULL, '$lairid', '$alias', '$name', '$align')";
  4.    $result = mysql_query($sql)
  5.      or die(mysql_error());
  6.    if ($result) {
  7.      $charid = mysql_insert_id($conn);
  8.    }
  9. ?>



Po poprawieniu kilku błędów dotyczachych skladni html zaczął wyskakiwać błąd :
Cytat
Data truncated for column 'align' at row 1


Zielonego pojecia nie mam jak ten błąd naprawic......biorąc pod uwage ze wczesniej wszystko bylo w porzadku i nie dotyczyło danych zwiazanych z "align" (nie myslic z komenda html winksmiley.jpg )...

Zreszta jak pole enum w bazie danych moze byc obciete ?
Po pewnej analizie doszedłem, że jest to spowodowane przez polską literę "ł" bo wartość "dobry" wprowadza sie bez problemu.
Zarówno tabela jak i baza danych sa ustawione na utf8 collation utf8_polish_ci

--------------------------------

Czy znajdzie sie dobry czlowiek ktory pomoze ?