![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 24.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Niby banalna rzecz ale jednak mam z nią ogromny problem. Załóżmy że mam tabele: Kod |------------------| | id | model | typ | |------------------| | 1 | kart | bk | | 2 | szal | kb | | 3 | link | bk | |------------------| Wykonałem już połączenie z bazą danych w AJAX - po wyborze modelu bez przeładowania strony wyświetla mi odpowiedni wiersz (wybierając z listy wyboru select model 'kart', wyświetla mi pełne informacje o tym modelu - wraz z rekordem typ). Chciałbym jednak by prócz wyświetlenia tego jednego rekordu, zostały wyświetlane również inne modele z takim samym typem. Innmi słowy - chcę by po wybraniu modelu 'kart', wyświetliło również model 'link', ponieważ oba mają takie same rekordy typ. Jak takie coś wykonać? jakaś zmienna? Ten post edytował bubek3 24.04.2012, 16:09:46 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 341 Pomógł: 40 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 24.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
alegorn, nie wiem czy ja źle zrozumiałem czy Ty mnie źle zrozumiałeś, ale dziękuję za chęć pomocy (IMG:style_emoticons/default/wink.gif)
Wszystkie dane są w jednej tabeli - Twoja komenda odnosi się chyba do dwóch tabel w tej samej bazie. Chodzi o to by z tej jednej tabeli w wyniku zapytania wyrzuciło mi wszystkie rekordy które mają ten sam typ. Po odpaleniu strony wyświetla mi liste rozwijalną typu select. Po wyborze jakiegoś modelu następuje łączenie z bazą (w ajax) i od razu po wyborze modelu, niżej wyświetla mi wynik. Niestety wyświetla tylko jeden rekord z tabeli (model i typ) modelu który wcześniej kliknąłem/wybrałem. Zależy mi na tym by prócz tego jednego rekordu - z tej samej tabeli - pobierało inne rekordy, które mają ten sam typ co model przeze mnie wybrany. Cytat("alegorn") poza tym masz nie znormalizowana baze danych Niestety tego nie zrozumiałem... Zaznaczę, że nie jestem w tej dziedznie ekspertem... ucze sę na własnych błedach, ale ten problem mnie przeasta... :/ |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 341 Pomógł: 40 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
zrozumialem, ale ty nie zrozumiales ze zrozumialem (IMG:style_emoticons/default/wink.gif)
sprawdzales to zapytanie? wstaw zamiast slowo table (to sie sformatowalo niepotrzebnie) swoja nazwe tabeli
j. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 24.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
alegorn, niestety zapytanie nie działa :/
Dla lepszego zobrazowania daję pliki które odpowiadają za wszystko (niestety nie widzę możliwości dodania jako załączników). Z góry dziękję za wskazanie błędów jakie popełniłem (IMG:style_emoticons/default/smile.gif) index.php
baza.php
wybor.js
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy dobrze zrozumiałem:
Szukasz np. w tabeli "dziwni ludzie" gościa o name = "Jaś" (np. where name="Jaś") W polu "obuwie" "Jaś" ma wpisane "gumofilce", chcesz jeszcze więc pobrać innych dziwnych ludzi z tej tabeli, którzy mają takie gumiaki? Proponuję coś takiego:
Jeśli ma być zachowana struktura tabeli to pewnie trzeba użyć UNION zamiast JOIN. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 24.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Pilsener, dokładnie, dobrze zrozumiałeś (IMG:style_emoticons/default/smile.gif) dziękuję, teraz wszystko działa tak jak zaplanowałem.
alegorn, chyba podobnie chciałeś zrobić ale nie potrafiłem sobie poradzić z Twoim zapytaniem :/ mimo wszystko - Tobie również dziękuję (IMG:style_emoticons/default/smile.gif) Dla ludzi którzy będą mieli podobny problem - rozwiązanie mojego zamieszczam niżej. Przeszukując fora zauważyłem, że ludzie nie chcą się dzielić kiedy rozwiążą swój problem - szkoda bo pewnie szybciej znalazłbym rozwiązanie i przede wszystkim nikt przeze mnie nie marnowałby swojego czasu. Dzięki temu nauczyłem się jednak sporo przez czytanie i samo kombinowanie w kodzie. W pliku baza.php, wystarczy podmienić linię 12: na
Dziękuję wszystkim zainteresowanym. Ten post edytował bubek3 25.04.2012, 15:07:23 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 341 Pomógł: 40 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
huh?
toż to jeden c**j... left join i join w tym wypadku nie robi roznicy. podajac zas select * zamiast mojego select t2.* powodujesz ze masz smieci w zwrocie., w pierwszej czesci masz zduplikowane rekordy o tabele t1 - i dopiero w czesci t2 jest rozne co do szczegolow. no, ale co tam, jesli jestes zadowolony z tego jak ci to dziala - no to najwazniejsze. Pilsener@:: union nie zadziala. pozdrawiam, J. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 24.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Przepraszam... faktycznie zapytanie alegorn działa. Sprawdziłem drugi raz na spokojnie. Szkoda, że wcześniej zrezygnowałem po pierwszym. Jednak mała literówka wdarła się do Twojego zapytania, a ja głupi nie zauważyłem tak istotnej rzeczy.
Mianowicie: Cytat("alegorn") Cytat("alegorn") SELECT t2.* FROM twoja_tabelat JOIN twoja_tabela t2 ON t1.typ = t2.typ WHERE t1.model = 'kart' Pełen przypływu radości, że ktoś znalazł dla mnie rozwiązanie wymieniłem twoja_tabelat na swoja nazwę tabeli, nie zwracając uwagi na to że po nazwie powinna znaleźć się nazwa "wirtualnej" tabeli. Zrezygnowałem - jak widać za szybko... Jak najbardziej śpieszę z "pomógł" (IMG:style_emoticons/default/smile.gif) I faktycznie... myśląc logicznie, wykorzystując select t2.* nie będzie śmieci w zwrocie. Cytat("alegorn") Pilsener@:: union nie zadziala. Zgadza się (IMG:style_emoticons/default/smile.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 10:22 |