Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Relacja między 3 tabelami, User comment, pub
devurien
post 27.03.2008, 18:03:39
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 27.03.2008

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


dzień dobry,
to mój pierwszy post więc chciałbym na początku przywitać wszystkich.

A teraz do rzeczy.
Tak wygląda (po obcięciu - na potrzeby forum) moja baza.



Zapytanie, które pobiera komentarze (tabela comments) dla odpowiedniego pubu (tabela pubs) na podstawia pól 'namepubs':
$comment=$this->db->query('SELECT * FROM pubs p, comments c, users u WHERE c.namepubs="'.$namepubs.'" AND p.namepubs="'.$namepubs.'" AND u.idusersc="'..'"');

działa OK.

Utworzyłem tabele users, która trzyma użytkowników. Teraz chciałbym przekształcić powyższe zapytanie tak aby wyświetliło mi użytkownikow którzy dodali komentarz - zachowując przy tym wszystko powyższe .

pozdrawiam.

Ten post edytował devurien 27.03.2008, 18:05:37
Go to the top of the page
+Quote Post
starcode
post 27.03.2008, 21:22:36
Post #2





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 18.06.2006

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


Nie wiem czy dobrze rozumiem.
Chcesz pobrać komentarze dla wybranego pubu oraz razem z tym użytkownika, ktory owe komentarze dodał, tak?

Wówczas wystarczy zapytanie:
  1. "SELECT * FROM `pubs` p, `comments` c, `users` u WHERE c.`namepubs`='$namepubs' AND p.`namepubs`='$namepubs' AND c.`idusersc`=u.`idusers`"


Możesz również wykonać to zapytanie następująco:

  1. "SELECT * FROM `pubs` p, `comments` c, `users` u WHERE c.`namepubs`='$namepubs' AND p.`namepubs`=c.`namepubs` AND c.`idusersc`=u.`idusers`"
Go to the top of the page
+Quote Post
devurien
post 27.03.2008, 21:57:27
Post #3





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 27.03.2008

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


Cytat(starcode @ 27.03.2008, 21:22:36 ) *
Nie wiem czy dobrze rozumiem.
Chcesz pobrać komentarze dla wybranego pubu oraz razem z tym użytkownika, ktory owe komentarze dodał, tak?


witam,
niestety nie. Pragnę wyświetlić WSZYSTKIE komentarze dodane przez userów. Nie tylko przez pojdedyńczego usera - bo tu sprawa jest dość błacha jak wyżej :-) i w tym cały mój problem ach:/

pozdrawiam.
Go to the top of the page
+Quote Post
jarek_bolo
post 28.03.2008, 12:53:20
Post #4





Grupa: Zarejestrowani
Postów: 149
Pomógł: 12
Dołączył: 3.03.2008
Skąd: łódzkie

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


Kurde, nie kumam o co Ci chodzi.

Spróbuj jeszcze raz, napisać innymi słowy co chcesz wyciągnąć.

Bo jeśli wszystkie komentarze no to
Kod
SELECT * FROM comments


smile.gif


--------------------
"Jeden człowiek nie zmieni świata, ale jeden człowiek może przekazać informację która zmieni świat." - David Icke
| PAMIĘTAJ, JESTEŚ POLAKIEM !!! |
Jam jest Polska, Ojczyzna Twoja, ziemia Ojców, z której wzrosłeś. Wszystko, czym jesteś, po Bogu - mnie zawdzięczasz!!
Go to the top of the page
+Quote Post
devurien
post 28.03.2008, 18:10:34
Post #5





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 27.03.2008

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


dzień dobry,
może i faktycznie źle się wysławiam - wybaczcie:)

Mamy sobie tabele pubs, która trzyma wszelkie informacje o pabach.
Wchodzimy sobie na taka stronę http://xxx.pl/pubs/vanilia (gdzie Vanilia jest nazwa pabu - realizuje to zapytanie: $showDetaillist=$this->db->query('SELECT * FROM pubs WHERE namepubs="'.$namepubs.'"'); ) i ładnie mi wsio listuje. U dołu strony jest możliwość dodawania komentarzy.
I teraz zalogowany user przypuśćmy, że ma ID = 1 o LOGINIE = devurien dodał komentarz, za nim dodał komentarz inny user o ID = 2 i LOGINIE = faraon.
Mamy teraz 2 userow którzy dodali do pabu np. Vanilia komentarz. Teraz chcę wyświetlić owe komentarze (wszystkie dodane przez wszystkich userow) w danym pabie w tym wypadku namepub=Vanilia. Może źle skonstruowałem bazę? Doradźcie coś chłopacy smile.gif

Cytat(jarek_bolo @ 28.03.2008, 12:53:20 ) *
Bo jeśli wszystkie komentarze no to
Kod
SELECT * FROM comments

i owszem lecz bez relacji miedzy tabelami uesers, pubs. Wyświetli jedynie komentarze bez podpisania jaki user dodał dany komentarz i przy jakim pubie.

czyli:
http://xxx.pl/pubs/vanilia
[..]
Komentarze:
fajny pub polecam.

a chce uzyskac:

http://xxx.pl/pubs/vanilia
[..]
Komentarze:
devurien naipisał dnia 11.11.2007: fajny pub polecam.


pozdrawiam was.
Go to the top of the page
+Quote Post
jarek_bolo
post 29.03.2008, 15:18:09
Post #6





Grupa: Zarejestrowani
Postów: 149
Pomógł: 12
Dołączył: 3.03.2008
Skąd: łódzkie

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


Stworzyłem sobie testowo trzy tabele i kombinowałem.
Wykombinowałem coś takiego:
Kod
SELECT u.login, c.*, p.* FROM comments AS c, users AS u, pubs AS p WHERE c.namepubs = 'TwojPub' AND c.idusersc = u.idusers AND p.namepubs = 'TwojPub'


O to Ci chodziło?


--------------------
"Jeden człowiek nie zmieni świata, ale jeden człowiek może przekazać informację która zmieni świat." - David Icke
| PAMIĘTAJ, JESTEŚ POLAKIEM !!! |
Jam jest Polska, Ojczyzna Twoja, ziemia Ojców, z której wzrosłeś. Wszystko, czym jesteś, po Bogu - mnie zawdzięczasz!!
Go to the top of the page
+Quote Post
devurien
post 29.03.2008, 19:20:29
Post #7





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 27.03.2008

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


Błogosławiony jarek_bolo - Twe zapytanie wydaje się działać wyśmienicie smile.gif
(potestuję dokładniej wieczorem )

Lecz nie przypuszczałem, że może być to aż tak banalne smile.gif) - daj numer konta należy Ci się duże piwo !

ps. link: Fenomen wyborców PO - bardzo przypadł mi do gustu!

powzolę sobie jeszcze rzucić takim fajniutkim linkiem: http://pl.wikibooks.org/wiki/PHP/Relacje_i_indeksy - proszę Was bardzo:)
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 13.08.2025 - 22:31