Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ [MySQL][PHP] Zapis koloru HEX do bazy

Napisany przez: 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:

  1. // zapis:
  2. INSERT INTO `kolory` (nazwa_koloru, kolor) VALUES ('Zielony', UNHEX('287233'));
  3. // odczyt:
  4. SELECT nazwa_koloru, HEX(kolor) AS kolor FROM `kolory`;

Baza widzi kolor a na stronie: °x...

Napisany przez: 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?

Napisany przez: 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:

  1. [kolor"]=>
  2. string(3) "°x"

Napisany przez: Pyton_000 21.01.2018, 21:17:53

Na prawdę potrzebujesz zaisać to w binary? Po co takie ceregiele wink.gif

Napisany przez: trueblue 21.01.2018, 21:21:51

Wygląda jakbyś nie robił HEX na tej wartości, bo powinieneś otrzymać string 6-znakowy.

Napisany przez: Kshyhoo 21.01.2018, 21:23:37

Mniej miejsca smile.gif Ale zapiszę inaczej, smile.gif

No właśnie. Może mysqli nie obsługuje?

Napisany przez: Pyton_000 21.01.2018, 21:28:43

A z ciekawości ile mln kolorów tam będzie zapisane?

Napisany przez: Kshyhoo 21.01.2018, 21:46:45

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ć wink.gif

Jaki typ najlepiej ustawić?

Napisany przez: darko 21.01.2018, 23:35:02

Spróbuj:

  1. SELECT nazwa_koloru, CAST(HEX(kolor) AS UNSIGNED) AS kolor FROM `kolory`;

Napisany przez: 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.

Napisany przez: 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 biggrin.gif

Napisany przez: Puszy 22.01.2018, 12:31:26

Baza obywateli Europy i ich ulubione kolory biggrin.gif

Napisany przez: 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. biggrin.gif

Napisany przez: 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

Napisany przez: 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 biggrin.gif Ot taki super mega search smile.gif

Ale co do tematu @Kshyhoo to wystarczy spokojnie CHAR(6)

Napisany przez: 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.

Napisany przez: 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.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)