![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
Witam mam dość dziwny przypadek i myśle że ktoś pomoże mi go rozwikłać mam mam dwie tabele nazwy,zamowienia (w tabeli zamówienia mam 2 rekordy i w tabeli nazwy mam też 2 rekordy)
chce je połaczyć ale po złączeniu robia sie 4 rekordy dlaczego nie 2 tyle ze sklejone?? o to jak to robie
otrzymuje zamiast 2 sklejonych rekordów takie cos : name | nazwa_prod Kaska | nazwjakas kowale | Jakas nazwaasdsad kowale | nazwjakas Kaska | Jakas nazwaasdsad Potrzebuje miesc np w taie postaci name | nazwa_prod Kaska | nazwjakas kowale | Jakas nazwaasdsad |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
widac dla kazdego nazwy.user odpowiadają dwa rekordy zamowienia.klient
Nie ma więc tu nic dziwnego (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 873 Pomógł: 25 Dołączył: 24.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
zapytanie wygląda ok. jeśli dostajesz 4 rekordy w wyniku to.... w tabeli zamówień masz, że Kaśka zamówiła dwa przedmioty i ten koleś też.
zrób sobie tak, czytelniej jest
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
nie no mam 2 zamowienia i dwie wpisane nazwy w 2tebeli jedna nazwa do jednego zamowienia w tej i tej tabeli jest ten sam user kurcze ....
chce dokleic same nazwy do tabeli z zamowieniami a robia sie 4 rekordy tak jakby sie mnożyły ;/ jak dokleic same nazwy do zamowien ;/ |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
pokaz dokladnie co zawiera pierwsza tabela i dokladnie co zawiera druga tabela
|
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
A ja myślę, że ma on jakiś bajzel w bazie. Zauważcie, że z dwóch 2-rekordowych tabel zrobił mu połączenie wszyscy do wszystkich czyli pełny iloczyn kartezjański (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
dlatego właśnie chcę by pokazał dokładnie co on tam ma...
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
tabela 1 nazwy
id | name | user 782 | Kaska | Steś 781 | kowale | Staś tabela 2 zamowienia id | nazwa_prod | klient 1727 | jakasnazwa | Staś 1726 | jaskasnazwa2 | Staś wszytskie nie wypisywałem tak jak czas czy cena itp i tą nazwy z name chce dodac do zamowien tak jest dokładnie |
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
"Steś " to literowka? Powinno byc "Staś" ?
No i taki Kowale łączy się z dwoma rekordami popprzez "Staś" czyli jest tak jak mowilismy. Nie wiem skąd u Ciebie takie zdziwienie... |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
tak mój blad jest Stas (IMG:style_emoticons/default/smile.gif) czyli nie mozna tego jakos zeby bylo 2 ;/
|
|
|
![]()
Post
#11
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Musiałbyś mieć takie dane:
tabela 1 nazwy id | name | user 782 | Kaska | kas 781 | kowale | kow tabela 2 zamowienia id | nazwa_prod | klient 1727 | jakasnazwa | kas 1726 | jaskasnazwa2 | kow |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
czyli teraz jak połacze to wychodzi ze zamiast 2 zrobił 4 zamowienia ;/
to jak sie nie da to jak moge najposciej i najwydaniej usunac duplikat |
|
|
![]()
Post
#13
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat to jak sie nie da to jak moge najposciej i najwydaniej usunac duplikat a skad bedziesz wiedzial ktory duplikat chcesz usunać? Oba duplikaty łączą sie z tym samym userem...Lepiej zaprojektuj baze poprawnie (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
Mam rozwiazenie inne ale nie wiem jak poprostu ununac duplikat moze ktos podac przykład
nospor moze podasz jakies rozwiazanie zebym nie musiał całej bazy rozwalac ;/ |
|
|
![]()
Post
#15
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
tabela 1
id | name 782 | Kaska 781 | kowale tabela 2 zamowienia id | nazwa_prod | id_user 1727 | jakasnazwa | 782 1726 | jaskasnazwa2 | 781 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
no to ndala nie rozwiazuje mojego problemu lecz przykład jest jak najbardziej prawidłowy i dział .A dlaczego nie rozwiązuje ponieważ zemy pózniej dodac zamowienie bede musiał to id z tabeli 1 wyciagnac z co za tym idzie pózniej while a ja nie moge miec tego while (IMG:style_emoticons/default/smile.gif) w najgorszym przypadku pózniej musiałbym kasowac duplikaty które niewiem jak.W sumie to bybylo najlepsze rozwiazanie.
Ten post edytował kielich 26.10.2009, 14:27:41 |
|
|
![]()
Post
#17
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat .A dlaczego nie rozwiązuje ponieważ zemy pózniej dodac zamowienie bede musiał to id z tabeli 1 wyciagnac z co za tym idzie pózniej while a ja nie moge miec tego while w najgorszym przypadku pózniej musiałbym kasowac duplikaty które niewiem jak.W sumie to bybylo najlepsze rozwiazanie. Nie obraź się, ale nic nie zrozumiałem z tego "bełkotu"...jaki while, jakie wyciąganie id? Mowisz o przeniesieniu starej bazy na tę nową strukture czy mowisz już o działaniu od początku na nowej strukturze? |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
No bo przy opisie produktu user wybiera sobie jego nazwe poczym je zapisuje do bazy pózniej wybiera przesyłkę i na samym koncu zamawia(insert z zamówieniem do bazy ).No i tak, musze jakoś połączyć wybrana nazwe ze złożonym zamówieniem, albo przed zapisaniem zamówienia wyciągnąć wybraną nazwe i razem z zamowieniem zapisać (i tu musiałbym użyć while czego niemoge zrobić ponieważ insert lezy w foreach i zamówienie sie zapisuje x2) dlatego mówiłem o kasowaniu double. Naprawde innaczej nie potrafie tego opisac. (IMG:style_emoticons/default/biggrin.gif)
|
|
|
![]()
Post
#19
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No dobra - ja się poddaje. Każdy kolejny opis zaciąga mnie coraz bardziej w ciemny, niezrozumiały las....
Jak można tak prostą sprawę tak przekombinowac? (IMG:style_emoticons/default/winksmiley.jpg) No nic, może ktoś inny zrozumie o czym ty do nas rozmawiasz (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#20
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Nospor... taki bełkot jest w każdym jego temacie (IMG:style_emoticons/default/winksmiley.jpg) Zerknij sobie to sam zobaczysz. Ja już w dwóch innych jego odpowiadam i zawsze kręci nosem, że jakieś pętle nie tak itp. (IMG:style_emoticons/default/smile.gif)
Jak dla mnie, nie rozumie on podstaw leżących w bazach danych. Nie wie dlaczego taka, a nie inna struktura powinna być zastosowana, nie mówiąc już o jej wdrożeniu w życie. Gdybyśmy mu podali zapytanie zwracające zamiast stringa liczbę to pewnie też by się burzył, że to nie ma być tak (IMG:style_emoticons/default/winksmiley.jpg) Nawet o strukturze nie wspominam, bo jakaś zmiana w tabelach pociągnęła by zmianę kodu php. A to moim zdaniem jest już dla niego za trudne bo musiałby wiedzieć gdzie co jest i dostosować do zmian. W jednym z tematów choćby swoich dodaje do koszyka przedmioty, nawet jeśli są one dublami, a z tego co zrozumiałem jego wypowiedź to jeszcze bonusem robi to z input text po nazwie, bez jakiejkolwiek walidacji czy obiekt istnieje w bazie produktów (IMG:style_emoticons/default/blinksmiley.gif) Dla nas takie coś jest niepojęte, ale próby wyjaśnienia mu i dojścia do sedna jego problemu kończą się masłem maślanym. Po 2 lub 3 próbie jego wyjaśnień o przyczynę problemu dojdziesz do punktu wyjścia i swojego pierwszego proponowanego rozwiązania, które znowu odrzuci z tych samych powodów co kilka postów wyżej. Jakbyś pisał z automatem mającym kilka wbudowanych formułek. A gdy już dojdziecie do czegoś, że działa, to wymyśli nowe problemy, tak jak tutaj z dublami. Ja sobie dałem już spokój z jego tematami bo nawet osoba mająca jakieś podstawy i potrafiąca sensownie pisać potrafiła by zapewne lepiej wyjaśnić czego chce. Uważam nawet, że z niemal kompletnie zieloną w temacie programowania dziewczyną (choćby jolam) łatwiej się porozumieć niż zrozumieć jego wywody. |
|
|
![]()
Post
#21
|
|
Grupa: Zarejestrowani Postów: 654 Pomógł: 121 Dołączył: 27.10.2007 Skąd: Poznań, Łódź Ostrzeżenie: (0%) ![]() ![]() |
Hej
Dorzucę i ja swoje trzy grosze w temacie (IMG:style_emoticons/default/winksmiley.jpg) Rozwiązanie zaproponowane przez nospor'a jest zgodne ze standardami projektowania relacyjnych baz danych. Według mnie to rozwiązanie optymalne i nie widzę w nim żadnego problemu (IMG:style_emoticons/default/winksmiley.jpg) Uzupełniłbym jeszcze te 2 tabele o 3 zawierającą listę wszystkich towarów dostępnych w sklepie. Kod Table Klienci Id int Name text Table Towary Id int Name text Table Zamowienia Id int Id_towar int Id_klient int Nie rozumiem dlaczego problemem jest odczytanie id klienta przy składaniu zamówienia? Czyżby system pozwalał składać zamówienia na podstawie nazwy klienta wpisanej "ręcznie"? Jeśli tak to gratuluję pomysłowości (IMG:style_emoticons/default/smile.gif) Wtedy pozostaje tylko czekać jak ktoś bystry zamówi towar na konto innego klienta - bo będzie znał jego nazwę... Według mnie to aby złożyć zamówienie musi być logowanie, wtedy sprawdzasz dane wpisane przez klienta i pobierasz jego id. Później trzymasz je w sesji i dodajesz do każdego rekordu zamówienia jakie w trakcie tej sesji będziesz wpisywał do bazy. Proste i niezawodne. Pozdrawiam |
|
|
![]()
Post
#22
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
Po pierwszy thek Nie nie mówiłem ze wpisywana nazwa nie jest filtrowana czy cos w tym rodzaju dla twojej wiadomosci jest własna funkcja filtrujaca wchodzących i wychodzący danych z i do bazy (IMG:style_emoticons/default/smile.gif) Ogólnie może nie napisałem jasno o co chodzi ale następnym razem zastanów się nad tym co ty robisz i jak to wykonujesz zanim zaczniesz kogos krytykowac.
Pisząc to chciałem dać podziękowania dla nospor'a "zapaliłeś latarkę w tym ciemnym lesie dzięki temu udało mi sie z niego wyjsc" (IMG:style_emoticons/default/smile.gif) jeszcze raz THX do zamknięcia |
|
|
![]()
Post
#23
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Więc na przyszłość kielich radzę przejrzeć swoje posty przed wduszeniem "Wyślij". Nie jest to złośliwość, bo gdybym taki był to czepiałbym się do ogromnej masy literówek jakie są w Twoich postach. Ale zwrot z innego Twojego tematu, w stylu "wstawiając do tablicy nazwę, którą użytkownik wpisuje do formularza" jawnie wskazuje na niemal kompletny brak walidacji. Właśnie takie opisy sprawiają, że nikt nie wie jak działają Twoje skrypty, co się dzieje na poszczególnych etapach z danymi, czy struktura bazy jest odpowiednia. Wszystko to trzeba wyciągać z Ciebie siłą. Dla przykładu zobacz sobie mój temat z problemem:
http://forum.php.pl/index.php?showtopic=133606 Teraz porównaj ile istotnych danych tam zamieściłem wraz z kilkoma próbami rozwiązania problemu zanim się poddałem i napisałem temat. Wszystkie warianty moich pomysłów opisałem by inni nie musieli mi podawać rozwiązań jakie już przetestowałem. Widzisz różnicę między Twoimi tematami a moim? Ja podaję to, co może się innym przydać w rozwiązaniu mojego problemu sam od siebie. Osoba czytająca wie po nim już niemal wszystko co potrzebne i jedynie niuanse mogą być niejasne. Dla problemu jaki Ty masz nie znamy w zasadzie nic. Do któregoś momentu nie znaliśmy struktury tabel (poproszono Cię o podanie), nie znamy kodu operującego na tych danych, nie wiemy jak te dane są obrabiane, do czego potrzebne, czy nie są powiązane z czymś co może być istotne by rozwiązać problem. Po prostu rzuciłeś go na forum i czekasz. W momencie zaś gdy są podawane Ci ewentualne rozwiązania nagle okazuje się, że to rodzi problemy następne, wynikające z obsługi tego kodu w jakimś skrypcie lub założeń, o których na początku wcale nie wspominałeś. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 04:39 |