Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Problem z wybraniem z bazy... - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: Problem z wybraniem z bazy... (/thread-problem-z-wybraniem-z-bazy)



Problem z wybraniem z bazy... - telos - 19-08-2011

Witam

Mam 2 tabele: kategorie i users. Wypisze tylko najwazniejsze kolumny)
kategorie: id_kat, nazwa_kat, id_user_dod, id_user_mod
users: id_user, login_user.
Po wybraniu danych z tabel na stronie powinno byc: nazwa kategorii, kto dodal i kto modyfikowal.
dodajacy nie koniecznie musi byc taki jak modyfikujacy. id_user przechwytywane jest w zmiennej sesji. Potrafie wybrac SELECT nazwa_kat, login_user WHERE id_user_dod = id_user.
A jak wybrac jesli dwoch roznych uzytkownikow dodalo i modyfikowalo rekord w tab. kategorie. bo przeciez takie cos nie przejdzie SELECT nazwa_kat, login_user, login_user WHERE id_user_dod = id_user, id_user_mod = id_user;
np. Nazwa -> Drukarka, Dodal -> JasioT, Modyfikowal -> StasioM


RE: Problem z wybraniem z bazy... - KowR - 19-08-2011

Złącz BD 'kategorie' z 'users' np. LEFT JOIN i wyciągniesz bez problemy loginy po ID użytkownikach.


RE: Problem z wybraniem z bazy... - telos - 22-08-2011

JOIN nie wystarczy.
Problem moj lezy w wybraniu dwa razy loginu usera za jednym zamachem.
Przyklad:
user: stasio (id_user 1) dodal kategorie - drukarka (id_kat 1) , teraz wynik zapytania ma postac.
Nazwa Dodal Modyfikowal
Drukarka Stasio (puste)

Potem ten sam rekord zmodyfikowal np. user: jasio (id_user 2) teraz wynik zapytania ma postac
Nazwa Dodal Modyfikowal
Drukarka Stasio Jasio

Potem w php'ie nie wiem jak wywalic login usera dodajacego i login user modyfikujacego.
while'm wywalam dane i za login odpowiada np. $row['login'], jesli walne to dwa razy to dane sie zduplikuja. Ja potrzebuje wywalic np. $row['login'] (user dodajacy) i $row['login'] (user modyfikujacy) w jednym wierszu. Jak mniej wiecej powinno wygladac zapytanie?


RE: Problem z wybraniem z bazy... - Pedro84 - 22-08-2011

@telos - Dwa razy JOIN z tabelą users + zastosowanie aliasu (AS dodajacy, AS modyfikujacy) i będzie grać.

@down - I super. Nauczyłeś się przynajmniej czegoś :-)


RE: Problem z wybraniem z bazy... - telos - 22-08-2011

Dzieki za pomoc, udalo mi sie takim zapytaniem:
Kod:
SELECT k.kat_id as kat_id, k.kat_nazwa as kat_nazwa, DATE_FORMAT(k.kat_wdate,'%d/%m/%Y %H:%i') as kat_wdate, DATE_FORMAT(k.kat_mdate,'%d/%m/%Y %H:%i') as kat_mdate, u.login as login1, ua.login as login2
    FROM kategorie k LEFT JOIN users u
    ON k.id = u.id LEFT JOIN users ua
    ON k.idm = ua.id;