![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 1 Dołączył: 5.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam 2 tabelki
TABELA TEMATY: temat_id temat_nazwa TABELA PRACA: praca_id praca_nazwa praca_temat_id W kontrolerze mam takie coś:
i w widoku:
wystwietaja mi sie teraz wszystkie tematy z bazy i w drugiej kolumnie praca1 praca2 praca3 zamiast cyferek chce miec drugą pętle która pętle foreach która pobiera mi wszystkie nazwy prac gdzie praca_temat_id = no i wlasnie sie mają wyswietalc w takiej formie praca1 praca2 nie wiem jak sie do tego zabrać w ogole :/ |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
JOIN + odpowiednie obrobienie danych aby uzyskać pożądaną strukturę (np. dla każdego obiektu tematu robisz tablicę z obiektami prac).
Swoją drogą to sugerowałbym najpierw obycie sie z PHP, a nie branie się od razu za ZF bo to dość twardy orzeszek. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 1 Dołączył: 5.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
ma ktoś może jakies linki do przykładu z łączeniem tabel w zendzie? mocuje się z tym juz drugi dzień a najgorsze jest to ze wlasciwie nie wiem co chce zrobić :/
Spróbuje to jeszcze raz opisać bo pierwszy post troche chaotyczny. Mam 2 tabelki: Tematy: temat_id temat_nazwa Prace: praca_id praca_temat_id praca_nazwa Moim celem jest wyświetlenie takiej tabelki http://www.a.ikky.pl/ Niestety nie moge tego zrobic na sztywno tematy wyświetlaja się tylko jesli spełnią dany warunek w pętli foreach. teraz troche kodu: Mój widok w którym wyświetlam tematy/prace
kontroler
no i model:
jakby ktoś sie zastanawiał po co to explode to ta tabelka bedzie dostepna po zalogowaniu i user ustawia sobie które tematy chce widziec i jego preferencje przetrzymuje w bazie w takiej postaci 1;2;3;4;5;6 (gdzie cyferki to id tematów) błagam o wskazówki/pomoc/linki/przykłady |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
ma ktoś może jakies linki do przykładu z łączeniem tabel w zendzie? mocuje się z tym juz drugi dzień a najgorsze jest to ze wlasciwie nie wiem co chce zrobić :/ No bez jaj :| zaglądałeś chociaż do dokumentacji? Są tam przykłady podane na tacy! Miałem podać link do nich ale - znajdź sobie sam. ...kolejny programista ze znajomością ZF... |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 1 Dołączył: 5.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Czy nazwałem się kiedyś programistą? Każdy musi od czegoś zacząc sorry. Zanim założylem ten durny temat siłowałem się z przykładami z dokumentacji pare razy. Za kazdym razem konczylem z errorem "Can not join tables" pozatym nie wiem nawet czy gdybym je połączył to uzyskałbym taki efekt jaki chce. Przedewszystkim chcialbym poprosic kogos zeby mi powiedzial jak rozwiazac moj problem czy kolejna pętla w środku drugiej kolumny to dobry pomysł a potem zrobie wszystko zeby poradzic sobie samemu. Wcale nie sprawia mi przyjemnosci proszenie o pomoc innych na forum no ale tylko chyba to mi pozostało a po to to forum jest.
|
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Nie, nigdzie nie nazwałeś się w ten sposób. Jest to uogólnienie z mojej strony bo coraz więcej osób porywa się od razu na frameworka nie mając podstaw w pracy z "czystym" PHP.
Ok, podam Ci pomocną dłoń. Stosując JOINa otrzymasz (przykładowo!) takie dane: Kod imie | posiadane_skarpetki ---------------------------- mietek | czerwone mietek | różowe heniek | zielone heniek | pomarańczowe heniek | przezroczyste Co w tablicy PHP będzie wyglądało tak:
Wyświetlając taką strukturę pętlą foreach otrzymasz powtórzenia na poziomie kolumny "imie". Musisz więc obrobić dane PRZED przekazaniem ich do widoku aby ich strukura wyglądała tak:
Na takiej lub podobnej strukturze osiągniesz swój cel. Ten post edytował phpion 20.08.2009, 19:02:44 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 1 Dołączył: 5.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
k dzięki bardzo za pomoc coś się ruszyło wreszcie
doszedłem do momentu kiedy juz mam wyswietlane dane niestety tak jak napisales powtarza się imie z Twojego przykładu jak to obrobic? tzn nie podawaj mi rozwiazania bo juz mi duzo pomogles tylko powiedz jak sie do tego zabrac na razie mam taką pętle:
temat1 - praca1 temat2 - praca2 temat3- praca3 temat3- praca4 <czyli powtarza tą 3> wymarzone rozwiązanie: temat3- praca3 praca4 Ten post edytował Ikky 20.08.2009, 22:30:32 |
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Przypuśćmy, że masz taką tablicę uzyskaną na podstawie bazy danych:
Jest to dość uproszczona tablica i zapewnie nie taką faktycznie uzyskujesz ale na takiej będę operował. Docelowo chcesz uzyskać coś takiego:
Musisz więc odpowiednio obrobić uzyskane wcześniej dane:
W wyniku przekształcenia powinieneś otrzymać odpowiednią strukturę. Nie testowałem, pisane z palca - powinno jednak działać. Jeśli nie to chociaż ideę załapiesz (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 1 Dołączył: 5.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Wow dzięki bardzo tyle ze pewnie cos zwaliłem bo dostaje dośc dziwną tablice. To jest mój cały kod (poprawiłem w pętli pare literówek)
I tablica:
jak zamieniam to
to mam wielka tablice ktora absolutnie nie ma sensu powtarzene elementy z tego $array po pare razy |
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Wkradło Ci się kilka wpadek. Ten kod działa poprawnie:
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 1 Dołączył: 5.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#12
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 1 Dołączył: 5.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
array przed przeróbką:
array po przeróbce:
/edit UDAŁO MI SIĘ TO ZROBIĆ SAMEMU (IMG:style_emoticons/default/tongue.gif) jescze raz wielkie dzięki phpion (IMG:style_emoticons/default/smile.gif) Ten post edytował Ikky 22.08.2009, 13:12:22 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 22:25 |