Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Zapytanie, 2 tabele
kleszczoscisk
post
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.
  1. $zapytanie = "SELECT * FROM `pytania`
  2. JOIN `odpowiedzi` ON (pytania.wp_id = odpowiedzi.wo_pytanie)
  3. WHERE
  4. wywiad_odpowiedzi.wo_osoba = $sess_id ";

Próbuję też tak, ale nie działa tak jak powinno:
  1. $zapytanie = "SELECT * FROM `pytania`
  2. LEFT OUTER JOIN `odpowiedzi` ON (pytania.wp_id = odpowiedzi.wo_pytanie)
  3. WHERE
  4. wywiad_odpowiedzi.wo_osoba = $sess_id ";


Ten post edytował kleszczoscisk 16.11.2010, 23:02:25
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mortus
post
Post #2





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?
Go to the top of the page
+Quote Post
kleszczoscisk
post
Post #3





Grupa: Zarejestrowani
Postów: 164
Pomógł: 3
Dołączył: 13.12.2007

Ostrzeżenie: (0%)
-----


Cytat(mortus @ 17.11.2010, 09:41:23 ) *
@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?


  1. $pytania_zapytanie = "SELECT * FROM `wp` LEFT OUTER JOIN `wo` ON (`wp`.`wp_id` = `wo`.`wo_pytanie`) WHERE `wo`.`wo_artysta` = $sess_id ";


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ść.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 15:27