Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] relacje i pobieranie danych
neverever
post
Post #1





Grupa: Zarejestrowani
Postów: 278
Pomógł: 44
Dołączył: 17.02.2004
Skąd: Wieliczka

Ostrzeżenie: (10%)
X----


Mam sobie takie przykładowo tabele
Kod
Tabela A (taba):
id_a
name_a
desc_a

Tabela B (tabb):
id_b
b_id_a
name_b
desc_b


Pola id_a i b_id_a są oczywiście połączone relacją. Teraz chciał bym pobrać nazwy dla danego identyfikatora czyli dla konkretnego id_b pobrać name_a i name_b, jak to zrobić?
Próbowałem tak:
Kod
$sql = mysql_query("SELECT * FROM taba, tabb WHERE id_b=1 AND id_a=b_id_a",$conn);
ale coś nie działa.


--------------------
neverever
Go to the top of the page
+Quote Post
ayeo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


Może JOIN?


--------------------
Go to the top of the page
+Quote Post
neverever
post
Post #3





Grupa: Zarejestrowani
Postów: 278
Pomógł: 44
Dołączył: 17.02.2004
Skąd: Wieliczka

Ostrzeżenie: (10%)
X----


Cytat(ayeo @ 11.11.2008, 18:10:42 ) *
Może JOIN?
A mogę prosić o konkretny przykład, bo jeszcze nigdy nie używałem zapytań z JOIN i jakoś nie moge się połapać


--------------------
neverever
Go to the top of the page
+Quote Post
mike
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


A jak próbujesz? Może robisz błąd.
Go to the top of the page
+Quote Post
neverever
post
Post #5





Grupa: Zarejestrowani
Postów: 278
Pomógł: 44
Dołączył: 17.02.2004
Skąd: Wieliczka

Ostrzeżenie: (10%)
X----


Cytat(mike @ 11.11.2008, 18:22:38 ) *
A jak próbujesz? Może robisz błąd.

Z pewnością robie źle.

  1. <?php
  2. $sql = mysql_query("SELECT * FROM taba, tabb JOIN tabb ON (tabb.id_b=1) AND JOIN taba ON (taba.id_a=tabb.b_id_a)",$conn));
  3. ?>


--------------------
neverever
Go to the top of the page
+Quote Post
l0ud
post
Post #6





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Spróbuj może tak:
  1. SELECT taba.name_a, tabb.name_b
  2. FROM tabb INNER JOIN taba ON taba.id_a = tabb.id_b
  3. WHERE tabb.id_b = 1;


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
neverever
post
Post #7





Grupa: Zarejestrowani
Postów: 278
Pomógł: 44
Dołączył: 17.02.2004
Skąd: Wieliczka

Ostrzeżenie: (10%)
X----


Cytat(l0ud @ 11.11.2008, 18:57:54 ) *
Spróbuj może tak:
  1. SELECT taba.name_a, tabb.name_b
  2. FROM tabb INNER JOIN taba ON taba.id_a = tabb.id_b
  3. WHERE tabb.id_b = 1;

zrobiłem tak, a potem dałem
Kod
$rekord = mysql_fetch_array($sql); echo '<pre>'.print_r($rekord).'</pre>';


i widzę że pokazuje mi cyfrę 1, a powinno tablice zawierającą klucze name_a i name_b wraz z ich wartościami. sciana.gif


--------------------
neverever
Go to the top of the page
+Quote Post
l0ud
post
Post #8





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Zrób var_dump($rekord); i wklej go tutaj. Nic takiego nie powinno się dziać...


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
neverever
post
Post #9





Grupa: Zarejestrowani
Postów: 278
Pomógł: 44
Dołączył: 17.02.2004
Skąd: Wieliczka

Ostrzeżenie: (10%)
X----


Cytat(l0ud @ 11.11.2008, 19:24:17 ) *
Zrób var_dump($rekord); i wklej go tutaj. Nic takiego nie powinno się dziać...

bool(false)

Tylko dlaczego? Normalnie kosmos.


--------------------
neverever
Go to the top of the page
+Quote Post
l0ud
post
Post #10





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


A na pewno masz w taba pozycję z id_a = 1 i w tabb pozycję z id_b = 1? Zapewne mysql_num_rows() zwraca 0?


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
neverever
post
Post #11





Grupa: Zarejestrowani
Postów: 278
Pomógł: 44
Dołączył: 17.02.2004
Skąd: Wieliczka

Ostrzeżenie: (10%)
X----


dzięki, już działa. Faktycznie id się nie zgadzały w obu tabelach.


--------------------
neverever
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 Aktualny czas: 20.08.2025 - 12:35