Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 10.11.2017 Ostrzeżenie: (0%)
|
Witam
Mam problem z wyciąganiem danych z bazy. mam 2 tabele: struktura pierwszej id(int), imie(string) sturktura drugiej: id(int), id_czlowieka(int), kolor(string) id_czlowieka to id z pierwszej tabeli, a ogólnie chodzi o przypisanie ulubionego koloru do człowieka. Tylko że człowiek może mieć kilka ulubionych kolorów Przykładowe dane: tabela pierwsza: id, imie 1, Grzesiek tabela druga: id, id_czlowieka, kolor 1,1,czerwony 2,1, niebieski używając zapytania SQL moge wyciągnąć coś takiego:
Grzesiek czerwony Grzesiek niebieski ale chciałbym otrzymać coś takiego: Grzesiek czerwony,niebieski moge coś takiego osiągnąć używająć:
i w php otrzymam takiego arraya:
tylko że "czerwony,niebieski" będzie jednym stringiem, a ja bym chciał żeby nie był jednym tylko dwoma: "czerwony","niebieski" żeby array w php zwrócił coś w stylu (sam pisałem tak dla przykładu, wiec nie wiem czy jest możliwe takie zwrócenie):
ma może ktoś pomysł jak to osiągnąć? przydałby sie taki array w arrayu żeby móc potem te kolory pojedyńczo wyciągnąć |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%)
|
A co za problem explode() na tym zrobić? Niestety sterowniki baz w PHP nie są za fajne gdy chodzi o takie dane. Pytałem kiedyś o taką funkcjonalność teamu php ale nie byli za bardzo chętni żeby wprowadzić - nawet tylko dla samego typu JSON.
Ten post edytował viking 10.11.2017, 15:10:14 |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 6 809 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
W PDO w trybie pobierania PDO::FETCH_GROUP|PDO::FETCH_UNIQUE
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 10.11.2017 Ostrzeżenie: (0%)
|
Dzięki wielkie za pomoc
Mam jeszcze pytanie do tego kodu napisanego powyżej. Jako że jestem raczej leszczem niż programistą to mam pytanie jak przejść z klasy do:
bo o ile co się dzieje w klasie to wiem, to co to jest i czemu tak jest to pojęcia nie mam Ten post edytował grzesoz 13.11.2017, 16:15:26 |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%)
|
Sprecyzuj pytanie bo przeczytałem kilka razy i nie wiem z czym jest problem.
|
|
|
|
Post
#6
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Linijka, o ktora pytasz, pobiera dane z bazy i kazdy rekord rzutuje na obiekt klasy dane. Czyli zamiast rekord zwracac jako tablica, to zwraca jako obiekt konkretnej klasy, ktora okresliles.
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 10.11.2017 Ostrzeżenie: (0%)
|
Problemem było to że nie do końca wiedziałem co to za linijka, teraz już wiem trochę więcej ale:
mam kod:
wyswietl() << pobiera dane z Bazy
i var_dump($stmt); wypluwa: object(stdClass)#6 (2) { ["imie"]=> string(8) "Grzegorz" ["KK"]=> string(24) "czarny,zielony,niebieski" } ale var_dump($result); wypluwa: Fatal error: Call to undefined method stdClass::fetchAll() in C:\Programy\xampp\htdocs\test\index.php on line 88 Zakłądam że powodem tego że nie wychodzi jest jakieś moje złe rozumowanie i brak wiedzy, moge prosić o nakierowanie? Ten post edytował grzesoz 13.11.2017, 16:54:40 |
|
|
|
Post
#8
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Pomieszales dwa rozne kody. viking robiac fetchAll pracowal na obiekcie bazy. Ty fetchAll robisz na wyniku funkcji wyswietl(), ktora jest zupelnie czym innym..
Ty w funkcji wyswetl() - swoja droga bezsensowna nazwa do tego co ona robi :/ - masz wstawic kod vikinga:
|
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 10.11.2017 Ostrzeżenie: (0%)
|
nazwa w tym przypadku nie jest zbyt istotna bo to talko tak testowo robię żeby czegoś sie nauczyć
i zrobiłem tak jak piszesz i mam wynik: array(1) { [0]=> object(dane)#4 (1) { ["imie":"dane":private]=> string(8) "Grzegorz" } } i brakuje mi kolorów moj cały kod
Ten post edytował grzesoz 13.11.2017, 17:27:25 |
|
|
|
Post
#10
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
nazwy nawet testowo maja znaczenie.
Brakuje kolorow? Ciekawe czemu.... Moze dlatego, ze klasa oczekuje nazwy "kolory" a ty jej przekazujesz "KK" jak widzisz nawet w tescie nazwy maja znaczenie (IMG:style_emoticons/default/wink.gif) |
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 10.11.2017 Ostrzeżenie: (0%)
|
Trudno się nie zgodzić
Dzięki za pomoc to jeszcze kontynuując temat mam pytanie o dostęp do danych, po naniesieniu poprawek wszystkich kod wypluwa o taki wiersz: array(1) { [0]=> object(dane)#4 (2) { ["imie"]=> string(8) "Grzegorz" ["kolory"]=> array(3) { [0]=> string(6) "czarny" [1]=> string(7) "zielony" [2]=> string(9) "niebieski" } } } mogę do nich się dostać i wyświetlić o tak:
otrzymując wiersz taki: Grzegorz czarny zielony niebieski a jakbym bez pętli chciał wyświetlić sobie np: kolor zielony, tak po prostu Ten post edytował grzesoz 13.11.2017, 20:53:33 |
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%)
|
A jak się Panie drogi dobieramy do elementów tablic? $a[2].
|
|
|
|
Post
#13
|
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 10.11.2017 Ostrzeżenie: (0%)
|
tyle to wiem, ale:
wypluwa: dane Object ( [imie] => Grzegorz [kolory] => Array ( [0] => czarny [1] => zielony [2] => niebieski ) ) i to jest ok, wszystko się zgadza ale wypluwa: Fatal error: Cannot use object of type dane as array in bo liczyłem że dostanę się to tego mojego koloru w taki sposób: i wypluje: zielony ale guzik z tego |
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%)
|
A do property klasy raczej się nie odnosisz jak do tablicy. ->
|
|
|
|
![]() ![]() |
|
Aktualny czas: 21.12.2025 - 20:18 |