Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

3 Stron V  < 1 2 3 >  
Reply to this topicStart new topic
> [PHP][MySQL] Wyświetlanie danych w komórce
trueblue
post 4.02.2018, 22:25:59
Post #21





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

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


A nie możesz mieć zamiast tych dwóch tablic w PHP jednej?

Kod
[0] => array([0] => '2020-Y')
[1] => array([0] => '2020-G90Y')
[2] => array([1] => '4525 C')
...

W ten sposób klucz jest reprezentacją, a wartość wartością koloru.


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post 4.02.2018, 22:31:02
Post #22





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




Nie zgadniesz, ile czasu zajęło mi pobranie do tej postaci smile.gif
  1. ..GROUP_CONCAT(a.alternativ ORDER BY a.id_alt ASC SEPARATOR '|') ALETNATIVS,...

Potem robię z tego tablicę:
  1. $alternativs = explode('|', $row['ALETNATIVS']);
  2. foreach ($alternativs as $alternativ) {
  3. $colors[$cid]['alternativs'][] = $alternativ;
  4. }
  5. $aranges = explode('|', $row['ARANGES']);
  6. foreach ($aranges as $arange) {
  7. $colors[$cid]['aranges'][] = $arange;
  8. }
  9. $aratings = explode('|', $row['ARATINGS']);
  10. foreach ($aratings as $arating) {
  11. $colors[$cid]['aratings'][] = $arating;
  12. }

A ja wklepać to w jedną?


--------------------
Go to the top of the page
+Quote Post
trueblue
post 4.02.2018, 22:44:26
Post #23





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

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


A nie lepiej takie zapytanie?
  1. SELECT a_range, alternativ FROM tabela WHERE id_alt=1 ORDER BY a_range

Każdy rekord będzie stanowił właśnie reprezentację i wartość.


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post 4.02.2018, 22:48:47
Post #24





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




No tak było na początku, ale nie umiałem tego wklepać w tabele HTML.


--------------------
Go to the top of the page
+Quote Post
trueblue
post 4.02.2018, 22:52:02
Post #25





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

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


To wróć do tego i zerknij w mój post #19.


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post 4.02.2018, 22:53:48
Post #26





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




No to mam 2 osobne zapytania robić?


--------------------
Go to the top of the page
+Quote Post
trueblue
post 4.02.2018, 22:55:20
Post #27





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

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


Jedno, takie jak podałem wyżej.


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post 4.02.2018, 22:58:00
Post #28





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




Ale to mi nie pobierze danych z pierwszej tabeli...


--------------------
Go to the top of the page
+Quote Post
trueblue
post 5.02.2018, 08:18:18
Post #29





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

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


Dodałeś drugą tabelę, ale dane masz nadal w postaci skumulowanej w pierwszej tabeli?


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post 5.02.2018, 09:39:58
Post #30





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




Nie, mam dwie tabele...


--------------------
Go to the top of the page
+Quote Post
trueblue
post 5.02.2018, 09:45:37
Post #31





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

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


Pokaż strukturę drugiej tabeli. Wydaje mi się, że pokazywałeś tylko jedną.


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post 6.02.2018, 20:40:12
Post #32





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




Potem przerzucilem do drugiej tabeli dane dla alternatywnych kolorów. Pokażę, jak wrócę do domu...

  1. Nazwa Typ
  2. ------------------------------
  3. id_col int(11)
  4. ral smallint(4)
  5. c_r char(3)
  6. c_g char(3)
  7. c_b char(3)
  8. c_hex char(6)
  9.  
  10. Nazwa Typ
  11. -----------------------------
  12. id_alt int(11)
  13. color int(4)
  14. alternativ tinytext
  15. a_range enum('0', '1')
  16. a_rating int(1)

Pobieram to tak:
  1. SELECT
  2. GROUP_CONCAT(a.alternativ ORDER BY a.id_alt ASC SEPARATOR '|') ALETNATIVS,
  3. GROUP_CONCAT(a.a_range ORDER BY a.id_alt ASC SEPARATOR '|') ARANGES,
  4. GROUP_CONCAT(a.a_rating ORDER BY a.id_alt ASC SEPARATOR '|') ARATINGS,
  5. c.id_col CID, c.ral CRAL, c.c_r CR, c.c_g CG, c.c_b CB, c.c_hex CHEX,
  6. a.id_alt, a.color
  7. FROM color c
  8. LEFT JOIN alterna a ON a.color = c.id_col
  9. GROUP BY c.id_col
  10. ORDER BY c.id_col ASC

I otrzymuję tablicę.

Jakiś pomysł?


--------------------
Go to the top of the page
+Quote Post
trueblue
post 6.02.2018, 20:50:41
Post #33





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

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


Najlepiej by było abyś zmienił strukturę bazy/tabel.

Pokaż jaki wynik daje:
  1. SELECT c.id_col CID, c.ral CRAL, c.c_r CR, c.c_g CG, c.c_b CB, c.c_hex CHEX, a.alternativ, a.a_range, a.a_rating, a.id_alt, a.color
  2. FROM color c
  3. LEFT JOIN alterna a ON a.color = c.id_col
  4. WHERE c.id_col=XXX
  5. ORDER BY a.id_alt



--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post 6.02.2018, 21:06:34
Post #34





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




Cytat
#1054 - Nieznana kolumna 'XXX' w where clause

Ale jeżeli podstawię pod xxx jakiś kolor np. 1000, daje pusty wynik.

Cytat(trueblue @ 6.02.2018, 20:50:41 ) *
Najlepiej by było abyś zmienił strukturę bazy/tabel.

Szukałem informacji, jak zbudować taką bazę, ale nic nie znalazłem...


--------------------
Go to the top of the page
+Quote Post
trueblue
post 6.02.2018, 21:12:17
Post #35





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

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


Podstaw jakiekolwiek id, aby wybrało jeden kolor.

Podawałem Ci wcześniej strukturę tabel.


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post 6.02.2018, 21:18:49
Post #36





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




To otrzymuję dane konkretnego koloru:
  1. CID CRAL CR CG CB CHEX alternativ a_range a_rating id_alt color
  2. 1 1000 190 189 127 BEBD7F 4525 C 1 4 1 1
  3. 1 1000 190 189 127 BEBD7F 2020-Y 0 4 2 1
  4. 1 1000 190 189 127 BEBD7F 2020-G90Y 0 2 3 1
  5. 1 1000 190 189 127 BEBD7F 5855 C 1 2 4 1
  6. 1 1000 190 189 127 BEBD7F 4535 C 1 2 5 1
  7. 1 1000 190 189 127 BEBD7F 2020-G80Y 0 1 6 1
  8. 1 1000 190 189 127 BEBD7F 7502 C 1 1 7 1
  9. 1 1000 190 189 127 BEBD7F 2020-Y10R 0 1 8 1


W tym poście? Nie wszystko kumam.


--------------------
Go to the top of the page
+Quote Post
trueblue
post 6.02.2018, 21:23:20
Post #37





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

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


Wystarczy, że posortujesz powyższe zapytanie według a_range, ew. drugiego, aby mieć jakąś (nie wiem co jest kluczem) kolejność dla wartości NCS i Pantone.

1. RAL masz od razu, drukujesz.
2. Przechodzisz do drugiego wiersza w komórce.
3. Sprawdzasz czy a_range jest 0 lub 1 i w zależności od tego drukujesz typ (NCS/Pantone).
4. Drukujesz obok wartość.
5. Przechodzisz do kolejnego wiersza.
6. Sprawdzasz czy a_range się zmieniło, jeśli tak, to drukujesz typ (NCS/Pantone).
7. Drukujesz obok wartość.
8. Masz tylko dwa typy a_range, więc drukujesz do końca wyniku.
9. RGB i HEX masz na wierzchu, więc drukujesz.


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post 6.02.2018, 21:27:39
Post #38





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




W taj chwili mam tak:
  1. Nazwa Typ
  2. id_col int(11) ---------------
  3. ral smallint(4) |
  4. c_r char(3) |
  5. c_g char(3) |
  6. c_b char(3) |
  7. c_hex char(6) |
  8. l_pl tinytext |
  9. |
  10. Nazwa Typ |
  11. id_alt int(11) |
  12. color int(4) --------
  13. alternativ tinytext
  14. a_range enum('0', '1')
  15. a_rating int(1)


I po zapytaniu mam taką tablicę:
  1. Array (
  2. [1] => Array (
  3. [cral] => 1000
  4. [cr] => 190
  5. [cg] => 189
  6. [cb] => 127
  7. [chex] => BEBD7F
  8. [clpl] => beżowo-zielony
  9. [alternativs] => Array (
  10. [0] => 4525 C
  11. [1] => 2020-Y
  12. [2] => 2020-G90Y
  13. [3] => 5855 C
  14. [4] => 4535 C
  15. [5] => 2020-G80Y
  16. [6] => 7502 C
  17. [7] => 2020-Y10R
  18. )
  19. [aranges] => Array (
  20. [0] => 1
  21. [1] => 0
  22. [2] => 0
  23. [3] => 1
  24. [4] => 1
  25. [5] => 0
  26. [6] => 1
  27. [7] => 0
  28. )
  29. [aratings] => Array (
  30. [0] => 4
  31. [1] => 4
  32. [2] => 2
  33. [3] => 2
  34. [4] => 2
  35. [5] => 1
  36. [6] => 1
  37. [7] => 1
  38. )
  39. )
  40. )


--------------------
Go to the top of the page
+Quote Post
trueblue
post 6.02.2018, 21:34:55
Post #39





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

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


Jeśli nie chcesz zmienić struktury na jaką podałem w poście #17, to zmień zapytanie, które podałem w poście #33 zgodnie ze wskazówkami w poście #37.


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post 6.02.2018, 21:37:06
Post #40





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




No właśnie nie wszystko rozumiem w twojej propozycji struktury bazy.


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

3 Stron V  < 1 2 3 >
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: 28.03.2024 - 17:42