Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]System dodawania znajomych, Jak zrobić system znajomych na stronie
palixmp
post
Post #1





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 19.07.2006

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


Witam.
Potrzebuje napisać system dodawania znajomych i mam pytanie. Mam takie 2 tabele:

UZYTKOWNIK
IDUzytkownika, Login

ZNAJOMOSCI
IDZnajomosci, Zapraszający, Zaproszony

I będzie do tego cały tam system plusików, akceptacji i w ogóle, tylko mam pytanie czy jest w ogóle sens takiej struktury Bo sprawa jest taka, że w tej tabeli ZNAJOMOSCI niewiem jak wyciągać kto jest kogo znajomym, bo musiał bym zrobić takie cos:

IDZnajomosci|Zapraszajacy|Zaproszony
1|1|2
2|2|1

Czyli musiał bym taką relację pisać 2 razy, bo jeśli Marcin zaprasza Jana do znajomych, to potem muszę napisać że Jan ma w znajomych Marcina. Bo potem przy wyciąganiu listy znajomych np. dla Marcina - sprawdzam z pierwszej kolumny nick Marcin i jakie ma znajomych w drugiej kolumnie. Więc dla Jana będzie to samo. No chyba wiecie o co chodzi.


No i mam pytanie, czy taki system znajomych, jest dobry?? Czy może znacie jakiś inny bardziej przydatny i lepszy do wykorzystania??

Z góry dzięki za odpowiedź.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
patryczakowy
post
Post #2





Grupa: Zarejestrowani
Postów: 420
Pomógł: 44
Dołączył: 22.10.2008

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


wystarczy że sprawdzisz czy marcin znajduje się w zaproszonych lub zapraszających (zakładając że w tabeli znajdują się tylko pary osób zaakceptowanych przez siebie), bo co to za różnica czy zaprosił czy jest zaproszony ważne że jest w tabeli para dwóch przyjaciół
Go to the top of the page
+Quote Post
blooregard
post
Post #3


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Wystarczy dla każdej "parki" tylko jeden rekord, czyli:
1 - Adam
2 - Zosia
3 - Maciek
4 - Ala
id znajomosci: 1
zapraszajacy: 1
zaproszony: 2

id znajomosci: 2
zapraszajacy: 2
zaproszony: 3

id znajomosci:3
zapraszajacy:2
zaproszony: 4

I teraz w zależności od potrzeb tylko zamieniasz miejscami w warunku zaproszony/zapraszający:
SELECT zapraszajacy WHERE zaproszony = 2 ; wyciągnie Ci wszystkich ZAPRASZAJĄCYCH Zosię do siebie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) - Adam
SELECT zaproszony WHERE zapraszajacy = 2; wyciągnie Ci wszystkich zaproszonych przez Zosię (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) - Maciek, Ala

W sumie da Ci to zbiór znajomych Zosi: Adama, Maćka i Alę, co jest true, bo zarówno Adam ma ją w swoich znajomych, oraz Maciek i Ala.
Żaden rekord się nie powtarza.
Pomijam sprawdzanie, czy ktoś przyjął-odrzucił zaproszenie itp.
Go to the top of the page
+Quote Post
palixmp
post
Post #4





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 19.07.2006

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


Nie będę zakładał nowego tematu, bo mam pytanie odnoście IF i OR:

Mam taki kod:
  1. <?php
  2. $query2 = "SELECT Zapraszajacy, Zaproszony FROM ZNAJOMOSCI WHERE Zapraszajacy = '$Loginn' AND Zaproszony = '$kto'";
  3.        $result2 = @mysql_query($query2);
  4. $query3 = "SELECT Zapraszajacy, Zaproszony FROM ZNAJOMOSCI WHERE Zaproszony = '$Loginn' AND Zapraszajacy = '$kto'";
  5.        $result3 = @mysql_query($query3);
  6.  
  7. if ( mysql_num_rows($result2) == 0 or mysql_num_rows($result3) == 0)
  8. {
  9. echo 'costam';
  10. } else {
  11. echo 'costam 2';
  12. ?>


I wyświetla mi mi zawsze "costam" to pierwsze. Jeśli zrobię bez OR, to działa poprawnie (zależnie które wybiorę query2 albo query3 to wyświetla mi albo "costam" albo "cośtam2" i to jest dobrze, wiec zapytania są dobrze) tylko nie umiem połączyć tych dwóch zapytań. Próbowałem na różne sposoby:
  1. <?php
  2. if (( mysql_num_rows($result2) == 0) or (mysql_num_rows($result3) == 0))
  3. ?>

To też nie działa (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Pomoże ktoś(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Z góry dzieki!!

Ten post edytował palixmp 2.02.2009, 23:10:53
Go to the top of the page
+Quote Post

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: 23.08.2025 - 12:54