Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]System dodawania znajomych
Forum PHP.pl > Forum > Przedszkole
palixmp
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ź.
patryczakowy
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ół
blooregard
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 winksmiley.jpg - Adam
SELECT zaproszony WHERE zapraszajacy = 2; wyciągnie Ci wszystkich zaproszonych przez Zosię 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.
palixmp
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 sad.gif

Pomoże ktośquestionmark.gif

Z góry dzieki!!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.