[PHP+MYSQL] Problem z wyświetlaniem wpisów

0

Witam!
Otóż mam problem. Robię prosty skrypt zleceń i mam problem z użytkownikami. Aktualnie jestem jedynym użytkownikiem, lecz chciałbym udostępniać go również innym. Zrobiłem rejestracje lecz pojawiają się schody... Po zalogowaniu do panelu wyświetlają się wszystkie zlecenia. Chciałbym, aby każdy użytkownik mógł widzieć tylko dodane przez siebie zlecenia. Struktura tabeli 'zlecenia' wygląda mniej więcej tak:

+---+----------+----------+
| id | tytul | info |
+---+----------+----------+
| 1 | zlece | tuinfo |
+---+----------+----------+
| 2 | zlece2 | tuinfo2 |
+---+----------+----------+

Listę zleceń wywołuje zapytaniem:

$link=mysql_query("SELECT * FROM zlecenia ORDER BY id desc");
while($wiersz=mysql_fetch_array($link)) { //tutaj tabelka }

Zaś pojedyncze zlecenie:

$link=mysql_query("SELECT * FROM zlecenia WHERE id='$id' ");
	$id=$_GET['id'];
	$wiersz=mysql_fetch_array($link);

        //no i wyświetlenie całości

Jak zrobić aby dany użytkownik widział tylko swoje zlecenia? Czy może do tabeli dodać pole 'kogo' gdzie dodawało by się podczas tworzenia nowego zlecenia automatycznie nazwa zalogowanego użytkownika? Jak by wtedy wyglądało zapytanie do bazy o wyświetlenie? I czy byłoby to bezpieczne? A może jest jakiś inny sposób? Dopiero raczkuje w php i mysql, mam nadzieję, że ktoś pomoże :)

Pozdrawiam!

0

Uzywasz polaczenia za pomoca klucza obcego:

TABELA UZYTKOWNIKOW:
+---+--------+----------+
|id |  user  |  passwd  |
+---+--------+----------+
|1  |   u1   |   pass1  |
+---+--------+----------+
|2  |   u2   |   pass2  |
+---+--------+----------+

TABELA ZLECEN:
+---+--------+--------+-----------+
|id |  zlec  |   info |  user_id  |
+---+--------+--------+-----------+
|1  |   z1   |  zzzz1 |   1       |
+---+--------+--------+-----------+
|2  |   z2   |  zzzz2 |   2       |
+---+--------+--------+-----------+
|3  |   z3   |  zzzz3 |   2       |
+---+--------+--------+-----------+

Kolumna user_id z tabeli zlecen jest kluczem obcym do pola id z tabeli uzytkownikow. Zeby wyciagnac zlecenia dla konkretnego uzytkownika (o id=2) piszesz:

SELECT * FROM zlecenia WHERE user_id=2 ORDER BY id desc
0

Jeszcze jakbyś mógł powiedzieć w jaki sposób mogę wyciągnąć z tabeli nr ID zalogowanego użytkownika? Dla nazwy użytkownika robię to tak:

$_SESSION['username']

Ale nie mam pojęcia jak to zrobić z id...

0
Szykra napisał(a)

Jeszcze jakbyś mógł powiedzieć w jaki sposób mogę wyciągnąć z tabeli nr ID zalogowanego użytkownika? Dla nazwy użytkownika robię to tak:

$_SESSION['username']

Ale nie mam pojęcia jak to zrobić z id...

Zapisz nazwę użytkownika do zmienej:

$UserName = $_SESSION['username'];

A potem zapytanie do bazy powinno wyglądac tak:

SELECT z.* 
  FROM zlecenia z
  LEFT JOIN uzytkownicy u ON z.user_id = u.id
 WHERE u.user = '$UserName'
 ORDER BY z.id DESC;

1 użytkowników online, w tym zalogowanych: 0, gości: 1