Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Pobieranie konkretnych danych z tabeli
kowi87
post 17.01.2013, 16:51:02
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 16.09.2011

Ostrzeżenie: (0%)
-----


Witam.
Na początek przedstawię jak wyglądają moje tabele, a następnie wyjaśnię w czym tkwi problem.

Tabela 1:
nazwa - uzytkownicy
pola - id, imie, email, haslo

Tabela 2:
nazwa - przedmioty
pola - id, iduzytkownika, nazwa, wartosc

Chodzi mi o to, by po zalogowaniu się użytkownika tabelka na stronie wypełniła się przedmiotami użytkownika.

Tak wyglądają linie kodu, w których coś jest nie tak jak być powinno:
  1. $mojeid=mysql_query("SELECT id FROM uzytkownicy WHERE uzytkownik='".$_SESSION["uzytkownik"]."';");
  2. $result=mysql_query("SELECT nazwa,wartosc FROM przedmioty WHERE iduzytkownika='".$mojeid."';");
Go to the top of the page
+Quote Post
b4rt3kk
post 17.01.2013, 17:01:38
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


  1. SELECT * FROM uzytkownicy JOIN przedmioty ON uzytkownicy.id = przedmioty.iduzytkownika


A zmienna $mojeid nie zwraca konkretniej wartości, tylko obiekt.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
Randallmaster
post 17.01.2013, 21:45:13
Post #3





Grupa: Zarejestrowani
Postów: 677
Pomógł: 11
Dołączył: 18.11.2009

Ostrzeżenie: (0%)
-----


Tabela 1:
nazwa - uzytkownicy
pola - id, imie, email, haslo

Tabela 2:
nazwa - przedmioty
pola - id, iduzytkownika, nazwa, wartosc


  1. select u.id, u.imie, p.id, p.iduzytkownika, p.nazwa, p.wartosc from uzytkownicy u join przedmioty p on p.iduzytkownika = u.id order by u.id


W taki sobsób można łączyć większą ilość tabeli. Pisane z palca więc mam nadzieje że nie nie zrobiłem błędu.

Ten post edytował Randallmaster 17.01.2013, 21:45:51
Go to the top of the page
+Quote Post
b4rt3kk
post 17.01.2013, 22:49:16
Post #4





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Cytat(Randallmaster @ 17.01.2013, 21:45:13 ) *
Tabela 1:
nazwa - uzytkownicy
pola - id, imie, email, haslo

Tabela 2:
nazwa - przedmioty
pola - id, iduzytkownika, nazwa, wartosc


  1. select u.id, u.imie, p.id, p.iduzytkownika, p.nazwa, p.wartosc from uzytkownicy u join przedmioty p on p.iduzytkownika = u.id order by u.id


W taki sobsób można łączyć większą ilość tabeli. Pisane z palca więc mam nadzieje że nie nie zrobiłem błędu.


Napisałeś to samo co ja post wyżej. smile.gif


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
kowi87
post 23.01.2013, 15:46:50
Post #5





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 16.09.2011

Ostrzeżenie: (0%)
-----


Wyświetla poprawnie przedmioty użytkownika od id = 1, pod warunkiem, że to jedyny użytkownik jaki jest w bazie danych. Gdy dodam użytkownika o id = 2, to bez względu na to, na które konto się zaloguję, w tabeli pokazuje mi przedmioty obu użytkowników.

Po zalogowaniu na profil w zmiennej $_SESSION["uzytkownik"] przekazywany jest login użytkownika (jego e-mail), dlatego myślałem by na końcu linii odpowiedzialnej za wyświetlanie przedmiotów dodać coś odpowiedzialnego za sprawdzenie e-maila użytkownika, by mieć pewność, że tylko jego przedmioty zostaną wyświetlone.

W głowie mej jest w tym momencie niesamowity chaos, dlatego mam nadzieję, że napisałem wszystko najjaśniej jak to możliwe.
Go to the top of the page
+Quote Post
Greg0
post 23.01.2013, 16:49:30
Post #6





Grupa: Zarejestrowani
Postów: 264
Pomógł: 54
Dołączył: 31.08.2007
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Dodaj do zapytania jeszcze regułę WHERE w której wybierzesz rekordy z ID użytkownika zalogowanego smile.gif
Go to the top of the page
+Quote Post
kowi87
post 23.01.2013, 17:17:48
Post #7





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 16.09.2011

Ostrzeżenie: (0%)
-----


Masz rację, jednak nie wiem jak tego dokonać, gdyż b4rt3kk napisał, że to zwróci obiekt, a nie wartość.
Go to the top of the page
+Quote Post
kristaps
post 24.01.2013, 04:30:34
Post #8





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

Ostrzeżenie: (0%)
-----


Cytat(kowi87 @ 23.01.2013, 17:17:48 ) *
[...] obiekt, a nie wartość.

Zgadza się, po mysql_query, wypadałoby użyć mysql_fetch_row. Czyli w Twoim przypadku:

  1. $row = mysql_fetch_row($mojeid);
  2.  
  3. $id = $row[0]; //Wynik zapytania
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.07.2025 - 04:30