Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Problem z wybraniem z bazy...
#1
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
Odpowiedz
#2
Złącz BD 'kategorie' z 'users' np. LEFT JOIN i wyciągniesz bez problemy loginy po ID użytkownikach.
Odpowiedz
#3
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?
Odpowiedz
#4
@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ś :-)
Dobre samopoczucie w tym tygodniu sponsoruje cytat:
Cytat:Mogę tylko tylko na prawo i lewo ale na środek nie mogę.
Odpowiedz
#5
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;
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Zmniejszenie czasu dostępu do bazy darling 8 8,412 06-12-2017, 18:00
Ostatni post: arki878
  Przeszukiwanie bazy, przechowywanie wyników vundo 3 4,191 02-12-2016, 20:16
Ostatni post: tereska3
  Wyświetlenie ilości Plików z bazy MySQL, Wyświetlenie ilości Plików z bazy SQL maniek666 1 3,662 28-11-2013, 14:51
Ostatni post: ILIES
  Przywrócenie bazy danych/struktury z plików OPT i FRM smiesznylolek 0 3,262 19-11-2013, 16:28
Ostatni post: smiesznylolek
  [MySQL] Struktura bazy dla słownika msx83 2 3,926 24-08-2013, 16:26
Ostatni post: msx83

Skocz do:


Użytkownicy przeglądający ten wątek:
Sponsorzy i przyjaciele
SeoHost.pl