![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 184 Pomógł: 0 Dołączył: 11.01.2010 Skąd: Nowa Dęba Ostrzeżenie: (0%) ![]() ![]() |
id | zaprasza | ziomek
1 mycu sławo 2 charles sławo 3 jasiek sławo 4 sławo mycu Witam, podpowie ktoś jak napisać dodawanie użytkowników do znajomych? Powiedzmy, że po kliknięciu + dodaj znajomego pobiera do bazy nick osoby zalogowanej i nick osoby, której chcemy dodać. Chciałbym tak to zrobić żeby wymagana była akceptacja zaproszeń. Powyżej baza zaproszenia. Jak napisać coś takiego że gdy 2 osoby się zaproszą to pojawi się na stronie? Nie chce żeby mi ktoś kod pisał tylko teoretycznie napisał na jakiej zasadzi mogłoby to działać. Z góry dzięki pzd. Ten post edytował slawo 23.03.2010, 20:04:58 -------------------- zpodziemia.pl - największa baza dobrych nielegali w POLSCE!
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Swego czasu robiłem to w następujący sposób: tabelka połączeń między dwoma użytkownikami z polami "user1_id" oraz "user2_id". Dodatkowo umieszczone było pole "type" określające typ zależności. Przyjąłem zasadę, że jeśli jest już wiersz (A,
![]() -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 580 Pomógł: 85 Dołączył: 25.03.2010 Skąd: Skrzyszów :) Ostrzeżenie: (0%) ![]() ![]() |
Na początku musimy zauwarzyć, że dane itak będą nam się dublować, więc proszę nie krzyczeć, że dane się dublują
![]() So, user_id1, user_id2 accepted_by_user2 <= pola 1) user 1 zaprasza 2, => 1,2 false 2 user 2 akceptuje, następuje aktualizacja zaproszenia, flaga true, oraz dodaje relacje 2,1,true Implementacja całkiem przyjemna i przyjazna we wdrożeniu i utrzymaniu, nie ma też dużo zajmujących pol typów innych niż bool i int, co w tabelkach relacyjnych, przy dużej ilości danych może okazać się ważne Drugą opcją może być trzymanie zaproszeń w osobnej tabelce, a wpisywanie do tabeli relacji tylko tych zaakceptowanych przez obie strony, co jest jeszcze lepszym rozwiązaniem Ten post edytował zend 26.03.2010, 22:48:30 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Moim zdaniem najlepiej zrobić dwie tabele:
znajomi [id_uzytkownika, id_znajomego] zaproszenia [id, id_zapraszajacego, id_zapraszanego, stan_dla_zapraszajacego, stan_dla_zapraszanego, stan_zaproszenia] przy czym: - zapraszający przechowuje zaproszenie w swojej skrzynce nadawczej: stan_dla_zapraszajacego='wysłane', - zapraszający zaproszenie usunął: stan_dla_zapraszajacego='wykasowane', - zapraszany zaproszenia jeszcze nie przeczytał: stan_dla_zapraszanego='nowe' oraz stan_zaproszenia='oczekuje', - zapraszany zaproszenie usunął, chociaż nie zaakceptował, a może nawet nie przeczytał: stan_dla_zapraszanego='wykasowane' oraz stan_zaproszenia='odrzucone', - zapraszany zaproszenie przeczytał, ale jeszcze nie zaakceptował: stan_dla_zapraszanego='przeczytane' oraz stan_zaproszenia='oczekuje', itd... Na początku musimy zauwarzyć, że dane itak będą nam się dublować Dane wcale nie muszą się dublować. Wszystko można sprawdzić za pomocą prostego select-a:Dane w tabeli zaproszenia możemy przechowywać, albo usuwać. Przechowywać musimy wtedy, gdy chcemy, aby użytkownik który zaproszenie od "ktosia" odrzucił, nie mógł tego "ktosia" zaprosić. Ten post edytował mortus 27.03.2010, 00:19:12 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 580 Pomógł: 85 Dołączył: 25.03.2010 Skąd: Skrzyszów :) Ostrzeżenie: (0%) ![]() ![]() |
Zgadza się, że problem można zniwelować za pomocą prostego zapytania, ale zakładam że w tabeli będzie przechowywana bardzo duża liczba rekordów, więc używanie "OR" jest strzałem w własną piętę, bo wszystkie dane zostaną sprawdzone drugim warunkiem, co jest mało wydajne
@mortus - o tym właśnie pisałem w moim wcześniejszym poście |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 184 Pomógł: 0 Dołączył: 11.01.2010 Skąd: Nowa Dęba Ostrzeżenie: (0%) ![]() ![]() |
udało mi się ogarnąć zaproszenia. Teraz mam problem z wyświetlaniem znajomych. Chcę aby profile wyświetlały się tak jak na fotce, n-k itp. tzn. po 4 w rzędzie.
Napisałem take coś:
Ale wyświetla mi jeden pod drugim. Jak napisać żeby po 4 profile wyświetlało i potem enter, <br> ? ![]() Zrobiłem to w tabelkach ale wątepie, że będzie mogła być tabelka koło tabelki. Ten post edytował slawo 27.03.2010, 15:08:36 -------------------- zpodziemia.pl - największa baza dobrych nielegali w POLSCE!
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Przykład
Wystarczy przystosować (podpowiem, że $liczba to wynik funkcji mysql_num_rows()). |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 04:57 |