![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 30.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Hej,
mam tabele "czesci" w bazie, która ma wartości mniej więcej takie (oczywiście tabela zawiera więcej nazw ze sobą nijak nie powiązanych):
i teraz po otrzymaniu nazwy wybieram konkretny nr materiałowy ale chce wyświetlić oprócz tego wszystkie nr zamienników bez powtórzeń, czyli wynik powinien wyglądać tak: nr materiału: 1111 zamienniki: 2222 3333
jezeli wyrzuce zmienne $main i $b i zostawie to co jest w else, zapętla mi się pętla a chcę aby się skończyła jeżeli już taki materiał wyświetliłem powyższe wyświetla mi tylko 1 zamiennik i niestety nie mogę znaleźć gdzie robię błąd? poproszę o sugestię dzięki pozdrawiam Ten post edytował jaco1410 25.02.2014, 22:56:19 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 2 Dołączył: 1.01.2013 Ostrzeżenie: (0%) ![]() ![]() |
Poczytaj o GROUP BY
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
coś takiego nie zrobi Ci z tego $main1 Przykład: http://ideone.com/ZxqOJP poza tym w warunku to chyba == a nie = a $row02[zamiennik] powinno być $row02['zamiennik'] ![]() i inne analogicznie ![]() Ten post edytował com 24.02.2014, 23:48:24 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 30.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Hej,
podstawiłem tak jak pisałeś w zmiennych:
oraz zastosowałem var_dump: niestety nic to nie dało, dalej mam tak samo, wyświetla tylko 1 zamiennik, myślę że coś z pętlą jest nie tak!, tylko nie mogę dojść co ![]() co do GROUP BY, nie mam pojęcia którą z jego funkcji i jak mógłbym wykorzystać, może ktoś podrzuci jakiś przykład? dzięki pozdrawiam. Ten post edytował jaco1410 25.02.2014, 21:04:23 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 2 Dołączył: 1.01.2013 Ostrzeżenie: (0%) ![]() ![]() |
Podaj przykład co i jak się ma wyświetlać bo z 1 posta nic nie rozumiem ;/. Np. pokaż co masz w tabeli i co z niej chcesz wyświetlić.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 30.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Hej,
faktycznie nie zrozumiale napisałem jak ma wyglądać wynik, zedytowałem pierwszy post. dzieki za uwagę |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 2 Dołączył: 1.01.2013 Ostrzeżenie: (0%) ![]() ![]() |
Możesz to zrobić tak: pewnie da się zrobić w 1 zapytaniu ale nie wiem jak:
wyświetlasz info o nr_materialowym
a później wyświetlasz wszystkie zamienniki różne od '$_POST["nazwa"]':
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 30.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Hej,
niestety to by tylko działało jezeli w tabeli miałbym tylko te 3 materiały, a jest ich niestety więcej i z różnymi nazwami i oczywiśnie nie są wszystkie ze sobą połączone zamiennikami:), więc tak nie da rady. może jeszcze ktoś pochyli się nad prośbą dzięki |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 2 Dołączył: 1.01.2013 Ostrzeżenie: (0%) ![]() ![]() |
To dalej nie rozumiem... rozumiem że podajesz $_POST["nazwa"] czyli nr_materialu
i teraz chcesz wyświetlić wszystkie zamienniki oprócz nazwy $_POST["nazwa"] i do tego zamienniki nie mogą się powtarzać? |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 30.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
tak,
wynik musi być taki: nr materiału: 1111 zamienniki: 2222 3333 przy Twoim zapytaniu otrzymam wszystkie kilkaset pozycji oprocz $_POST["nazwa"], co mnie nie interesuje pozdrawiam |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 2 Dołączył: 1.01.2013 Ostrzeżenie: (0%) ![]() ![]() |
SELECT zamiennik FROM czesci WHERE zamiennik<>'$_POST["nazwa"]' GROUP BY zamiennik
to jest bez powtorzeń |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 30.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Hej,
no nie działa tak, tak jak pisalem to moze by i zadzialalo jakbym mial tylko 3 pozycje. ujmę to tak: pomyśl że w tabeli mam jeszcze pozycje:
i ma jej nie być przy wyświetlaniu, przy Twoim zapytaniu ta pozycja także będzie widnieć, więc tak to nie będzie działać. ma ktoś jakiś pomysł? pozdrawiam |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 2 Dołączył: 1.01.2013 Ostrzeżenie: (0%) ![]() ![]() |
Aha teraz rozumiem o co chodzi. Myślałem że są same 'żarówki'. Na twoim miejscu albo podzielił bym to na dwie tabele albo dodał kolumnę typ.
Ale jak chcesz się bawić w pętle to pokaż ten poprawiony kod. |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 30.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
nie każda żarówka pasuje do drugiej:), to jest tylko wymyślony przykład,
poprawiony kod nie działa więc nie ma co go publikować. edit: 26.02.2014 wkońcu udało mi sie stworzyć odpowiednią działającą pętlę z wykorzystaniem tablic ![]() może jest ktoś kto jest w stanie ją zoptymalizować do paru "k" danych?
Ten post edytował jaco1410 26.02.2014, 22:41:54 |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
To co ja dałem Ci to przecież był przykład ze tak masz nie robić bo nie działa tak, wyraźnie napisałem, że z tego nie uzyskasz tego co chciałeś, bo konkatenacja stringa dodaje do niego a nie dopisuje nr do nazwy zmiennej..
A co do kwestii kolejnych to masz źle zbudowana bazę danych, w jednaj tabeli trzymasz wszystkie klucze, a w drugiej do danego klucza przypisujesz zamiennik, wtedy w zapytaniu wyciągasz co jest potrzebne i o nic się nie musisz martwić bo nic Ci się wtedy nie powtarza.. Ten post edytował com 26.02.2014, 22:53:17 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 30.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Hej,
dlatego wymyśliłem zupełnie inną pętlę ![]() baza jest tak rozbudowana, że nie ma szans operować na kluczach o których piszesz, jak bym miał kilkaset pozycji to może tak ale nie przy zróżnicowaniu żędu kilku kilo w różne strony ![]() pozdrawiam. |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Cytat jak bym miał kilkaset pozycji to może tak ale nie przy zróżnicowaniu żędu kilku kilo w różne strony Jak rozumiem mówimy o relacyjnych bazach danych, wiec sam chyba nie wiesz o czym mówisz.. Głowna idea tych baz jest właśnie tworzenie relacji a nie jak w bazach nosqlowych, poczytaj sobie trochę o tym a wtedy wszystkie twoje problemy i wątpliwości zostaną rozwiane, bo tym bardziej dla kilku kilo danych brak normalizacji to masochizm ![]() Ten post edytował com 26.02.2014, 23:25:23 |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 30.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
masz rację, wprowadzę to w życie, a właściwie wykorzystam już istniejące elementy, wcześnie nie pomyślałem o tym ....
i mniej wyciągne danych tym szybciej mi powinno to działać. co do relacyjnych bazach danych to wciąż się uczę ![]() dzięki pozdrawiam |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 00:41 |