![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 0 Dołączył: 25.03.2010 Skąd: Radom Ostrzeżenie: (10%)
|
Witam,
Mam 3 tabele xxx, yyy i zzz. Zapytaniem
Pobieram potrzebne dla mnie wartości z tabeli xxx i yyy. Teraz zawartość tabeli yyy muszę porównać z zawartością tabeli zzz natomiast nie wiem jak to zrobić ponieważ musi to być podczas wyświetlania zawartości tabeli yyy którą wyświetlam w następujący sposób
Jak widać, przy case odbywa się ów porównanie, problem polega na tym, że jesli wybiore za jednym zamachem wszystkie potrzebne dla mnie wartości zapytaniem
to każdy rekord wyświetlany jest po 4 razy, poniewaz tabela xxx ma 4 rekordy. Myślalem, aby zrobić dodatkowe (osobne) zapytanie dla tabeli xxx
wtedy rekordy wyświetlane byłyby prawidłwo, natomiast nie potrafie ich wtedy porównać :/ Mogę wyświetlić tabelę zzz poprzez
ale to mnie nie ratuje :/ Prosilbym o pomoc bo męczę się z tym od kilku godzin i nie wiem jak to ugryźć zeby było dobrze (IMG:style_emoticons/default/sad.gif) nic? nikt? :/ Panowie pomóżcie bo ja juz do tego nie mam siły (IMG:style_emoticons/default/tongue.gif) próbowałem już chyba wszystkiego i nic :/ Ten post edytował qweluke 6.04.2010, 18:48:49 |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%)
|
Nie wiem czy coś pomogę, bo z sqla jestem słaby (zaraz wrzucę do stopki (IMG:style_emoticons/default/smile.gif) ) ale może spróbuj z distinct:
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 0 Dołączył: 25.03.2010 Skąd: Radom Ostrzeżenie: (10%)
|
Nie pomaga, bo rekordy powtarzające się nie są takie same.
Żeby to lepiej wytlumaczyc, zobacz(cie) obrazek ponizej. (IMG:http://ifotos.pl/mini/wynik_nnwpre.jpg) ' Samo zapytanie SQL wybiera po 4 razy imie i nazwisko poniewaz ostatnie 4 kolujmy są inne. Wydaje mi się, że najlepiej byłoby to zrobić na dwóch zapytania SQL, bo wtedy osoby wyświetlane sa prawidłowo ale jak już pisałem wcześniej, nie wiem jak porównać dane z ostatnich czterech tabel :/ |
|
|
|
Post
#4
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Cytat Jak widać, przy case odbywa się ów porównanie, problem polega na tym, że jesli wybiore za jednym zamachem wszystkie potrzebne dla mnie wartości zapytaniem no tak, bo jak nie powiesz w łączeniu po czym łączysz tabele, to jest robiony iloczyn kartezjanski (czy jak to tam się nazywa) i jest kombinacja kazdy z kazdym.[SQL] pobierz, plaintext SELECT * FROM `xxx`, `yyy`, `zzz`WHERE xxx.id_uzytkownika=yyy.id to każdy rekord wyświetlany jest po 4 razy, poniewaz tabela xxx ma 4 rekordy. Musiz w łączeniu powiedziec które pole z yyy łączy się z polem zzz, tak jak to zrobiles z xxx i yyy |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 0 Dołączył: 25.03.2010 Skąd: Radom Ostrzeżenie: (10%)
|
no właśnie sek w tym, że one się nie łączą ze sobą.
dane z trzeciej tabeli pobieram aby porównać je z innymi rekordami :/ Czyli przypuszczam, że tabele zzz muszę pobrać osobno tylko znow... nie wiem jak je porównać ze sobą bo nie mogę wynieść zmiennych poza pętlę while Może jeśli dane z tabeli zzz przeniose do tablicy w php to wtedy będę mógł je porównać? czyli podsumowując: jak przenieść dane z pętli while do jakiejś innej zmiennej tak, abym mógł je poźniej wyświetlić/porównywać z innymi danymi? |
|
|
|
Post
#6
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
czegos nie rozumiem:
jesli tabele nie łączą się ze sobą to jak chcesz je porównac? No ale pomijając fakt tego mego nierozumienia, to jesli zzz ma tylko 4 rekordy jak piszesz, to pobierz je raz, zapisz do tablicy w php i rob z nimi co chcesz. |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 0 Dołączył: 25.03.2010 Skąd: Radom Ostrzeżenie: (10%)
|
poradzilem sobie z tym (IMG:style_emoticons/default/smile.gif)
tablice pomogly :}
i wszystko ok ;] |
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 21:59 |