Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql][php] Pobieranie danych z dwóch tabel
Forum PHP.pl > Forum > Przedszkole
WojtasSP320
Witam.

Mam mały problem. Chciałbym pobrać dane z dwóch tabel i robię to zapytaniem:

  1. SELECT * FROM zamowienia INNER JOIN klienci ON zamowienia.ID_klienta = klienci.ID GROUP BY ID_klienta

Problem pojawia się w momencie, gdy chcę wyświetlić ID z tabeli zamowienia.
Obie tabele zawierają pola "ID"

zakładając, że robię
  1. $rekord = mysql_fetch_array($query);

jak wyświetlić pole ID z tabeli zamowienia?
  1. $rekord['zamowienia.ID'] ?
  2. $rekord['zamowienia']['ID'] ?

Gdy robię
  1. $rekord['ID']

to pobiera mi ID z tabeli klienci

Z góry dzięki za pomoc
piotrooo89
ja znam sposób z tworzeniem aliasów. nie jest być może zbyt elegancki ale skuteczny.
thek
Najprostszy i najskuteczniejszy jest alias o czym wspomniano. Jeśli wiesz, że obie tabele zawierają zdublowane pole to ja mu ustawiam alias. Osobiście nie używam niemal wcale * przy select, no chyba że to mała tabelka. To ogranicza ilość przesyłanych danych, a tym samym zwiększa szybkość działania skryptu. W Twoim wypadku mogło by to wyglądać tak:
  1. SELECT k.*, z.ID AS id_aliasowe FROM zamowienia z INNER JOIN klienci k ON z.ID_klienta = k.ID GROUP BY z.ID_klienta

Ale to tylko przykład, bo nie znam struktury Twojej tabeli smile.gif k.* oznacza wybranie wszystkich pól z tabeli klientów (tabelom nadałem aliasy k = klienci, z = zamówienia, by skrócić zapytanie), zaś z.ID AS id_aliasowe to własnie ów alias smile.gif
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.