Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]System znajomości, Problem i pytanie z systemem znajomości
wolacinio
post
Post #1





Grupa: Zarejestrowani
Postów: 85
Pomógł: 1
Dołączył: 2.06.2009

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


Witam serdecznie.
Mam pytanie jak rozwiać jeden problem z systemem znajomości ,teraz opisze problem:
Posiadam dwie tabele uzyt i znajomi

Użyt
ID|Imie
1|Piotr
2|Pawel
Znajomi

ID|ID_wysylajacego|ID_znajomego|Znajomy
1|1|2|tak

Wyszukuje w z bazy danych znajomych użytkownika o ID = 1
No to bedzie cos takiego
  1. SELECT T2.Imie
  2. FROM znajomi AS T1,uzyt AS T2
  3. WHERE T1.ID_wysylajacego = '1' AND T2.ID = T1.ID_znajomego AND T1.Znajomy = 'tak'

Możliwe ze sa błedy po pisałem "od ręki"

Wszystko działa lecz do czasu otoz to zapytanie zwróci Imie tego znajomego co mnie cieszy,lecz co by było jak by to uzytkownik 2 (Pawel) zaprosił uzytkownika 1(Piotr) ? w tedy nie wyswietli sie (IMG:style_emoticons/default/sad.gif)
Ja miałem no to taki sposób ze tworze dwa zapytania jedno to to powyzej a drugie to wyszukuje znowu w ID_znajomego ID = 3 a ID_wysyłajacego przypisuje to drugiej tabeli
Chodzi to ale ja bym chciał to za pomocą jednego zapytania zrobić ? a moze wogole inaczej zaprojektować baze ?
Nie prosze o zrobienie tego za mnie lecz jakas wskazówkę,podpowiedź (IMG:style_emoticons/default/winksmiley.jpg) byłbym bardzo bardzo wdzięczny (IMG:style_emoticons/default/winksmiley.jpg)

Pozdrawiam Paweł

Ten post edytował wolacinio 24.09.2010, 19:22:09
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sebekzosw
post
Post #2





Grupa: Zarejestrowani
Postów: 437
Pomógł: 42
Dołączył: 16.04.2007

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


a ja już takie coś robiłem i proponuje w tabeli znajomosci:
id rekordu, user1, user2, status, [data] i zrobić tak, że zapraszający zawsze się zapisuje na user1
I wtedy wszystko jasne... Jeżeli chcesz wyświetlić wszystkie zaproszenia do usera 2 to zapytanie:
  1. SELECT * FROM `znajomosci` WHERE `status`='0' AND `user2` = 5;


Znajomi usera 1:
  1. SELECT * FROM `znajomosci` WHERE `status`='1' AND (`user1`= 1 OR `user2` = 1);


Zaproszenia wysłane przez usera1 niezaakceptowane:
  1. SELECT * FROM `znajomosci` WHERE `status`='0' AND `user1` = 1;


Zaproszenia wysłane przez usera1 zaakceptowane:
  1. SELECT * FROM `znajomosci` WHERE `status`='1' AND `user1` = 1;


i tak można kombinować (IMG:style_emoticons/default/smile.gif)

Ten post edytował sebekzosw 25.09.2010, 01:52:30
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: 6.10.2025 - 20:37