Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] relacje i pobieranie danych
Forum PHP.pl > Forum > Przedszkole
neverever
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.
ayeo
Może JOIN?
neverever
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ć
mike
A jak próbujesz? Może robisz błąd.
neverever
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. ?>
l0ud
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;
neverever
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
l0ud
Zrób var_dump($rekord); i wklej go tutaj. Nic takiego nie powinno się dziać...
neverever
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.
l0ud
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?
neverever
dzięki, już działa. Faktycznie id się nie zgadzały w obu tabelach.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.