Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Udostępnianie danych innym użytkownikom
redelek
post
Post #1





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


Hej,

Temat trochę zakręcony, ale nie mogę sobie poradzić. Postaram się go Wam przedstawić i opisać, może ktoś mi pomoże.
Mam tabele w której jest pole udostępnij. Każdy użytkownik po dodaniu nowego rekordu może go udostępnić innemu użytkownikowi.
Czyli janek dodał rekord i dopisał , że użytkownik o id 1 ma to widzieć. Użytkownik o id 1 po zalogowaniu zobaczy swoje rekordy plus rekord od janka.
Problem mam w tym, że janek jeden rekord udostępnia użytkownikowi 1,2,3 ( pole udostępniania jest typu VARCHAR ).
Po takim udostępnieniu użytkownik o id 2,3 nie widzą rekordu. Jeśli jest jedna cyfra to umiem zrobić to zapytanie , wygląda mniej więcej tak

  1. $wynik = mysql_query("SELECT * FROM $M_TABELA3
  2. JOIN $M_TABELA2 ON $M_TABELA3.idcategory=$M_TABELA2.id_category
  3. WHERE id_user=$IDUSER OR shared=$IDUSER
  4. ORDER BY id_mywebpass DESC") or die (SQL_SEL_E.mysql_error());


Niestety problem mam w tym, jak pobrać dla innych użytkowników , którzy są wymienieni w polu udostępniania po przecinku. Czy jest to w ogóle wykonalne?. Zależy mi na tym udostępnianiu.

Będę zobowiązany za informację
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
redelek
post
Post #2





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


no tak, ale jak użytkownik doda kilku użytkowników 2 lub 10 to będzie musiał być 10 insertów.
Bo jeśli użytkownik udostępnia jeden rekord użytkownikom 2, 3,4,5,6,7,8,9
to w tabeli wiążącej muszą powstać

id_user id_rec_shared
2 10
3 10
4 10
5 10
6 10
7 10
itd..
Tak , bo ja to tak rozumiem
Go to the top of the page
+Quote Post
mortus
post
Post #3





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Cytat(redelek @ 6.06.2011, 10:07:18 ) *
no tak, ale jak użytkownik doda kilku użytkowników 2 lub 10 to będzie musiał być 10 insertów.
Bo jeśli użytkownik udostępnia jeden rekord użytkownikom 2, 3,4,5,6,7,8,9
to w tabeli wiążącej muszą powstać

id_user id_rec_shared
2 10
3 10
4 10
5 10
6 10
7 10
itd..
Tak , bo ja to tak rozumiem

Wystarczy jeden INSERT troszkę bardziej rozbudowany:
  1. INSERT INTO relacja (id_user, id_rec_shared) VALUES (2, 10), (3, 10), (4, 10), (5, 10), (6, 10), (7, 10), ...
Nie wiem tylko, czy MySQL nie ogranicza tego rodzaju operacji do np. kilkudziesięciu wartości (VALUES). Jeżeli tak, to trzeba będzie w pętli INSERT-y zrobić, tak jak to zauważyłeś.

EDIT
W sumie to wszystko jest uzależnione od liczby użytkowników, którym dany rekord może być udostępniany. Jeśli tych użytkowników jest wielu, to może warto by było zastanowić się nad zaimplementowaniem grup użytkowników.

Ten post edytował mortus 6.06.2011, 09:14:38
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 9.10.2025 - 11:13