Kshyhoo
21.01.2018, 20:38:57
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`;
Baza widzi kolor a na stronie: °x...
trueblue
21.01.2018, 20:48:17
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?
Kshyhoo
21.01.2018, 21:05:00
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"
Pyton_000
21.01.2018, 21:17:53
Na prawdę potrzebujesz zaisać to w binary? Po co takie ceregiele
trueblue
21.01.2018, 21:21:51
Wygląda jakbyś nie robił HEX na tej wartości, bo powinieneś otrzymać string 6-znakowy.
Kshyhoo
21.01.2018, 21:23:37
Mniej miejsca

Ale zapiszę inaczej,

No właśnie. Może mysqli nie obsługuje?
Pyton_000
21.01.2018, 21:28:43
A z ciekawości ile mln kolorów tam będzie zapisane?
Kshyhoo
21.01.2018, 21:46:45
Może z kilkaset rekordów. Szukałem w necie typów i znalazłem
to i chciałem skorzystać

Jaki typ najlepiej ustawić?
darko
21.01.2018, 23:35:02
Spróbuj:
SELECT nazwa_koloru, CAST(HEX(kolor) AS UNSIGNED) AS kolor FROM `kolory`;
Puszy
22.01.2018, 11:42:54
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.
Pyton_000
22.01.2018, 12:03:47
Puszy a ja bym chciał zobaczyć projekt któy by był użył tych 16kk kolorów
Puszy
22.01.2018, 12:31:26
Baza obywateli Europy i ich ulubione kolory
Pyton_000
22.01.2018, 12:38:50
Zakładając że połowa powie biały/czarny/przeje...y to aż tak dużo kolorów nie potrzeba.
Puszy
22.01.2018, 12:49:35
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
Pyton_000
22.01.2018, 12:54:02
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)
SmokAnalog
22.01.2018, 14:00:57
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.
Kshyhoo
22.01.2018, 18:12:27
Cytat(Pyton_000 @ 22.01.2018, 12:54:02 )

Ale co do tematu @Kshyhoo to wystarczy spokojnie CHAR(6)
Tak zrobiłem już po zapoczątkowaniu dyskusji. Dzięki wszystkim za zaangażowanie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.