Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Pobieranie danych z dwóch tabel
Forum PHP.pl > Forum > Przedszkole
mariuszg
witam,

mam takie zapytanie:

  1. $mysql = mysql_query("SELECT * FROM magazyn
  2. LEFT JOIN uzytkownik ON (uzytkownik.id = magazyn.odpowiedzialny)
  3. WHERE id = 1 ");
  4.  
  5. $wiersz=mysql_fetch_array ($mysql);
  6.  
  7. $odpowiedzialny = $wiersz['imie']." ".$wiersz['nazwisko'];
  8.  


w tabeli magazyn mam drugą kolumnę która zawierają id innych użytkowników - czyli w tabeli magazyn mam dwie kolumny które zawierają id użytkowników

Z jednej kolumny wyświetlam tak jak powyższy przykład.
A jak wyświetlić też imię i nazwisko dla id z drugiej kolumny ?

proszę o pomoc

Kshyhoo
Pokaż strukturę tabel. Jeżeli dane są powiązane, możesz użyć złączenia JOIN.
mariuszg
tabela:magazyn
id
nazwa
odpowiedzialny - tu mam id z tabeli uzytkownik
wlasciciel - tu mam id z tabeli uzytkownik

tabela:uzytkownik
id
imie
nazwisko
Kshyhoo
Spróbuj tak:
  1. SELECT * FROM magazyn LEFT JOIN uzytkownik ON (id = id) ORDER BY id ASC

Lepiej nazwać ID w tabelach, np. id_mag, id_user
mariuszg
ten przykład łączy się tylko z jednym polem
nadaję nazwy id tak jak napisałeś ale dla lepszego zobrazowania podałem najprostsze

np:

tabela:magazyn
mag_id
mag_nazwa
mag_odpowiedzialny - tu mam id z tabeli uzytkownik
mag_wlasciciel - tu mam id z tabeli uzytkownik

tabela:uzytkownik
uzy_id
uzy_imie
uzy_nazwisko
mmmmmmm
  1. SELECT mag_id, mag_nazwa, odp.uzy_imie, odp.uzy_nazwisko, wl.uzy_imie, wl.uzy_nazwisko FROM magazyn m LEFT JOIN uzytkownik odp ON odp.uzy_id=m.mag_odpowiedzialny LEFT JOIN uzytkownik wl ON m.mag_wlasciciel=wl.uzy_id

EDYTA: Poprawione nazwy pól...
mariuszg
nie działa, mam błąd zapytania, próbowałem poszukać ale nie dam rady
mmmmmmm
Poprawiłem zapytanie (nazwy pól). Sprawdź. Jeśli nie działa, to daj komunikat błędu
mariuszg
nie wysypuje się ale łączy tylko jedną kolumnę:

  1. $wynik=mysql_query("SELECT
  2. mag_id,
  3. mag_nazwa,
  4. odp.uzy_imie,
  5. odp.uzy_nazwisko,
  6. wl.uzy_imie,
  7. wl.uzy_nazwisko
  8.  
  9. FROM magazyn m
  10.  
  11. LEFT JOIN uzytkownik odp ON odp.uzy_id=m.mag_odpowiedzialny
  12. LEFT JOIN uzytkownik wl ON m.mag_wlasciciel=wl.uzy_id
  13.  
  14. ");
  15.  
  16. while ($dane = mysql_fetch_assoc ($wynik)){
  17. echo '<pre>';
  18. print_r($dane);
  19. echo '</pre>';
  20. }


Wynik:

  1. (
  2. [mag_wlasciciel] => 2
  3. [mag_id] => 1
  4. [mag_nazwa] => Kurtka
  5. [uzy_imie] => Tomasz
  6. [uzy_nazwisko] => Wątek
  7. )
  8.  
  9. (
  10. [mag_wlasciciel] => 2
  11. [mag_id] => 2
  12. [mag_nazwa] => Szafa
  13. [uzy_imie] => Tomasz
  14. [uzy_nazwisko] => Wątek
  15. )
mmmmmmm
Hehe, sprawdź z mysql_fetch_array()
Albo:
  1. SELECT
  2. mag_id,
  3. mag_nazwa,
  4. odp.uzy_imie odpowiedzialny_imie,
  5. odp.uzy_nazwisko odpowiedzialny_nazwisko,
  6. wl.uzy_imie wlasciceil_imie,
  7. wl.uzy_nazwisko wlasciciel_nazwisko
  8. FROM magazyn m
  9. LEFT JOIN uzytkownik odp ON odp.uzy_id=m.mag_odpowiedzialny
  10. LEFT JOIN uzytkownik wl ON m.mag_wlasciciel=wl.uzy_id

mariuszg
działa pięknie

Wynik:

  1. (
  2. [mag_id] => 1
  3. [mag_nazwa] => Kurtka
  4. [odpowiedzialny_imie] => Mariusz
  5. [odpowiedzialny_nazwisko] => Ziobro
  6. [wlasciceil_imie] => Tomasz
  7. [wlasciciel_nazwisko] => Wątek
  8. )
  9.  
  10. (
  11. [mag_id] => 2
  12. [mag_nazwa] => Szafa
  13. [odpowiedzialny_imie] => Mariusz
  14. [odpowiedzialny_nazwisko] => Ziobro
  15. [wlasciceil_imie] => Tomasz
  16. [wlasciciel_nazwisko] => Wątek
  17. )
  18.  


Bardzo bardzo dziękuję

muszę sporo poćwiczyć z tymi zapytaniami
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.