Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Zapis koloru HEX do bazy
Kshyhoo
post 21.01.2018, 20:38:57
Post #1





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




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...


--------------------
Go to the top of the page
+Quote Post
trueblue
post 21.01.2018, 20:48:17
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


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?


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post 21.01.2018, 21:05:00
Post #3





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




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"


--------------------
Go to the top of the page
+Quote Post
Pyton_000
post 21.01.2018, 21:17:53
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Na prawdę potrzebujesz zaisać to w binary? Po co takie ceregiele wink.gif
Go to the top of the page
+Quote Post
trueblue
post 21.01.2018, 21:21:51
Post #5





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post 21.01.2018, 21:23:37
Post #6





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




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

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


--------------------
Go to the top of the page
+Quote Post
Pyton_000
post 21.01.2018, 21:28:43
Post #7





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


A z ciekawości ile mln kolorów tam będzie zapisane?
Go to the top of the page
+Quote Post
Kshyhoo
post 21.01.2018, 21:46:45
Post #8





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Może z kilkaset rekordów. Szukałem w necie typów i znalazłem to i chciałem skorzystać wink.gif

Jaki typ najlepiej ustawić?


--------------------
Go to the top of the page
+Quote Post
darko
post 21.01.2018, 23:35:02
Post #9





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
Puszy
post 22.01.2018, 11:42:54
Post #10





Grupa: Zarejestrowani
Postów: 279
Pomógł: 42
Dołączył: 10.10.2011

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Pyton_000
post 22.01.2018, 12:03:47
Post #11





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Puszy a ja bym chciał zobaczyć projekt któy by był użył tych 16kk kolorów biggrin.gif
Go to the top of the page
+Quote Post
Puszy
post 22.01.2018, 12:31:26
Post #12





Grupa: Zarejestrowani
Postów: 279
Pomógł: 42
Dołączył: 10.10.2011

Ostrzeżenie: (0%)
-----


Baza obywateli Europy i ich ulubione kolory biggrin.gif
Go to the top of the page
+Quote Post
Pyton_000
post 22.01.2018, 12:38:50
Post #13





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Zakładając że połowa powie biały/czarny/przeje...y to aż tak dużo kolorów nie potrzeba. biggrin.gif
Go to the top of the page
+Quote Post
Puszy
post 22.01.2018, 12:49:35
Post #14





Grupa: Zarejestrowani
Postów: 279
Pomógł: 42
Dołączył: 10.10.2011

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Pyton_000
post 22.01.2018, 12:54:02
Post #15





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


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)
Go to the top of the page
+Quote Post
SmokAnalog
post 22.01.2018, 14:00:57
Post #16





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Kshyhoo
post 22.01.2018, 18:12:27
Post #17





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




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.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2024 - 13:14