![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 164 Pomógł: 3 Dołączył: 13.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam i proszę o pomoc
Mam 2 tabele w bazie MySQL: Kod PYTANIA wp_id int(11) UNSIGNED auto_increment wp_pytanie text wp_kategoria int(2) Kod ODPOWIEDZI wo_id int(11) UNSIGNED auto_increment wo_pytanie int(11) wo_osoba int(11) wo_odpowiedz text W tabeli PYTANIA przechowywane są pytania. W tabeli ODPOWIEDZI są udzielone odpowiedzi. Ludzie dowolnie wybierają sobie pytania i udzielają na nie odpowiedzi. Chcę wyświetlić danej osobie (wo_osoba) wszystkie(!) pytania i jeśli udzielił jakiejś odpowiedzi - wyświetlić tę odpowiedź. Jak skonstruować zapytanie ? Poniższe zapytanie wyświetla mi tylko te pytania do których są przyporządkowane odpowiedzi.
Próbuję też tak, ale nie działa tak jak powinno:
Ten post edytował kleszczoscisk 16.11.2010, 23:02:25 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 314 Pomógł: 44 Dołączył: 12.11.2010 Skąd: UK Ostrzeżenie: (0%) ![]() ![]() |
kurde nie za bardzo rozumiem po co ci dwie tabele? nie możesz mieć jednej tabeli?
i teraz nie wiem czy cie dobrze rozumiem ale wydaje mi się ze chodzi ci o coś takiego(już jakbyś miał jedna bazę) (nawet nie wiem czy ten kod by działał.. tak tylko obrazuje)ale prawdopodobnie cie źle zrozumiałem |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 164 Pomógł: 3 Dołączył: 13.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dwie tabele po to aby nie powtarzać przy każdej odpowiedzi treści pytania. Byłem przekonany, że tak jest prawidłowo: jedna tabela z pytaniami: id i tresc pytania, druga z odpowiedziami wszystkich osób, przyporządkowanych do pytań (po nr id). Krótko mówiąc: dla jednego pytania, tyle odpowiedzi ile jest osób...
Jest jakiś sposób aby uzyskać wszystkie pytania i odpowiedzi do nich jeśli są, dla wybranej osoby ? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 314 Pomógł: 44 Dołączył: 12.11.2010 Skąd: UK Ostrzeżenie: (0%) ![]() ![]() |
Coś takiego?Szczerze to się dopiero sam uczę ale .. staramy się przede wszystkim! |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
@nekomata To jest jakiś pomysł, ale nie do końca dobry. Twój kod przy każdym pytaniu wyświetli wszystkie odpowiedzi dla danej osoby. Potrzebna jest jego mała modyfikacja, ale i tak rozwiązanie to nie będzie optymalne.
@kleszczoscisk LEFT OUTER JOIN powinien załatwić sprawę. Dlaczego więc "nie działa tak jak powinno"? Co się dzieje, jakie dane wyświetla i dlaczego nie są one prawidłowe? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 314 Pomógł: 44 Dołączył: 12.11.2010 Skąd: UK Ostrzeżenie: (0%) ![]() ![]() |
hmmm mała modyfikacja.. oświeciło mnie dopiero jak mi powiedziałeś ;P
nie wiem czy coś takiego by zadziałało nawet no i tak jak mówisz... to nie jest optymalne Ten post edytował nekomata 17.11.2010, 09:58:01 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 164 Pomógł: 3 Dołączył: 13.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
@kleszczoscisk LEFT OUTER JOIN powinien załatwić sprawę. Dlaczego więc "nie działa tak jak powinno"? Co się dzieje, jakie dane wyświetla i dlaczego nie są one prawidłowe?
Kod Array ( [0] => 2 [wp_id] => 2 [1] => Jak często malujesz kobiety ? [wp_pytanie] => Jak często malujesz kobiety ? [2] => 0 [wp_kategoria] => 0 [3] => 1 [wo_id] => 1 [4] => 2 [wo_pytanie] => 2 [5] => 2 [wo_osoba] => 2 [6] => Wcale nie maluję [wo_odpowiedz] => Wcale nie maluję ) Serdeczne dzięki za odpowiedzi, po południu będę sprawdzał bo teraz muszę wyjść. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Zapytanie z LEFT OUTER JOIN psuje klauzula WHERE. Rozwiązanie:
Jak myślisz, dlaczego zapytanie z WHERE nie działa? @nekomata Jeśli już to tak: To tak mniej więcej, bo trzeba jeszcze wspomniany warunek dopisać. Jednak gołym okiem widać, że rozwiązanie to nie jest optymalne, bo drugie zapytanie wykonujemy nawet wtedy, gdy dana osoba nie udzieliła odpowiedzi na któreś pytanie. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 164 Pomógł: 3 Dołączył: 13.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki serdeczne wszystkim za pomoc, @mortus: (IMG:http://files.chesscomfiles.com/images_users/tiny_mce/BorgQueen/sm_worship.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 10:37 |