Mam problem z odzyskaniem danych zapisanych do bazy. Tabela ma typ binary(3). Próba odzyskania danych... brak.
Kod:
// zapis: INSERT INTO `kolory` (nazwa_koloru, kolor) VALUES ('Zielony', UNHEX('287233')); // odczyt: SELECT nazwa_koloru, HEX(kolor) AS kolor FROM `kolory`;
Czyli wynik SELECT'a bezpośrednio na bazie jest poprawny, tak?
A co to znaczy, że na stronie jest °x...? Gdzie i jak wstawiasz wartość z SELECT?
W phpMyAdmin widać °x, ale w trybie edycji jest właściwy kolor.
Po stronie PHP widać °x. Tak jak i var_dump:
[kolor"]=> string(3) "°x"
Na prawdę potrzebujesz zaisać to w binary? Po co takie ceregiele
Wygląda jakbyś nie robił HEX na tej wartości, bo powinieneś otrzymać string 6-znakowy.
Mniej miejsca Ale zapiszę inaczej,
No właśnie. Może mysqli nie obsługuje?
A z ciekawości ile mln kolorów tam będzie zapisane?
Może z kilkaset rekordów. Szukałem w necie typów i znalazłem http://itsolutionstuff.com/post/mysql-hexadecimal-color-code-store-in-binary-datatype i chciałem skorzystać
Jaki typ najlepiej ustawić?
Spróbuj:
SELECT nazwa_koloru, CAST(HEX(kolor) AS UNSIGNED) AS kolor FROM `kolory`;
Chciałbym pociągnąć dalej kwestię tego co powiedział Pyton. Nie wiem jak wielką ilość danych i jak niewydajną bazę musiałbyś mieć żeby taki ruch był opłacalny, nawet w przypadku milionów rekordów to wolałbym wrzucić wszystkie możliwe kombinacje kolorów (16.7kk) i po prostu potem pracować na relacji.
Puszy a ja bym chciał zobaczyć projekt któy by był użył tych 16kk kolorów
Baza obywateli Europy i ich ulubione kolory
Zakładając że połowa powie biały/czarny/przeje...y to aż tak dużo kolorów nie potrzeba.
Ale rozumiesz ideę, kiedyś napotkałem kod forum który zamiast zapisywania postów zapisywał sekwencję relacji do słów zbieranych w osobnej tabeli. Nie wiem czy to przerost formy nad treścią czy po prostu "usprawniony" system wyszukiwania
Tak, phpBB2 bodaj miało tak że zapisywało każde słowo oddzielnie z id postu Ot taki super mega search
Ale co do tematu @Kshyhoo to wystarczy spokojnie CHAR(6)
A może tak zapisz kolor w kolumnie mediumint? Ma 3 bajty, czyli dokładnie tyle, ile potrzeba. Nie zapisywałbym koloru jako jego wartości reprezentacyjnej.
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)