![]() |
![]() ![]() |
![]() |
![]()
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
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 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 306 Pomógł: 32 Dołączył: 20.01.2008 Ostrzeżenie: (20%) ![]() ![]() |
Najlepiej byłoby, gdybym wiedział jak to ma wyglądać w praktyce, bo nie mam pewności, czy powyższy kod zadziała. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 1 Dołączył: 2.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
tzn. co chcesz wiedziec ? moge ci pokazac nawet strone jaka robie,pokazac pulpit wiec mozecie prosic o wszystko
Ma to polegac na tym ze uzytkownik od ID 1 wysyła zaproszenie uzytkwonikowi o ID 2 ,a ten uzytkownik(2) akceptuje badź odrzuca |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 306 Pomógł: 32 Dołączył: 20.01.2008 Ostrzeżenie: (20%) ![]() ![]() |
A co ma robić to konkretne zapytanie?
Pobrać wszystkie zaproszenia jakie zostały wysłane, czy może pobrać wszystkich twoich znajomych (twoich = dla konkretnego ID)? |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 1 Dołączył: 2.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ma ta wyświetlic wszystkich uzytkowników uzytkownika o ID = 1(Piotr)
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 22 Dołączył: 20.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
wg mnie najlatwiej to zrobic tak:
1 tabela: user, pola id, imie 2 tabela znajmosci, pola: user_id, znajomy_id, zaakceptowany , gdzie user_id to id uzytkownika, ktory prosi o zawarcie znajmosci, a znajomy_id to id usera ktorego chce zaprosic. W momencie gdy uzytkownik o id 1 (nazwijmy go Tomek) chce zawrzec znajomosc z uzytkownikiem o id 2 (Franek) to do tabeli znajmosci dodawany jest wpis 1,2,0. W tym momencie Tomek nie ma Franka jako znajomego (zaakceptowany = 0) ale Franek bedzie widzial, ze Tomek go zaprosil. Teraz Franek moze zaakceptowac zaproszenie. Gdy je zaakceptuje poprzedni wpis w tabeli znajomosci zmieni sie na 1,2,1 (zaakceptowano znajomosc. Tylko, ze jest to dzialanie jednostronne. W tabeli znajomosci informujemy ktory uzytkownik jest znajomym ktorego. Nie ma sensu bawic sie w podwojne zapytania. Wydaje mi sie ze lepiej zrobic tak: gdy Franek akceptuje znajomosc zmienic wpis utworzony przez Tomka tak jak napisalem wczesniej ORAZ dodac nowy wpis do tabeli znajomosci o tresci 2,1,1 (Franek bedzie znajomym Tomka - wpis aktywny). Teraz sa swoimi znajomymi. Wyszukujac wszystkie znajomy_id uzytkownika o danym user_id (np 1 dla Tomka) znajdziemy wszystkich jego znajomych, tak samo dla Franka (id 2) zostanie znaleziony uzytkownik o id 1. Trzeba tylko pamietac o aktualizacji tabeli w razie zerwania kontaktu, albo odrzuceniu akceptacji (dodatkowe pole) ale to juz dodatki |
|
|
![]()
Post
#7
|
|
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:
Znajomi usera 1:
Zaproszenia wysłane przez usera1 niezaakceptowane:
Zaproszenia wysłane przez usera1 zaakceptowane:
i tak można kombinować (IMG:style_emoticons/default/smile.gif) Ten post edytował sebekzosw 25.09.2010, 01:52:30 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 1 Dołączył: 2.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
sebekzosw to ja o tym wiem ale jak połaczyć oby dwie tabele? i jak wyciagnac Imie,bo to co mi wysłałeś jest dobre lecz wyszukuje wszystkie kolumny
Bo robie tak: SELECT Imie FROM uzyt WHERE ID = (SELECT (tutaj nie wiem czy według Zapraszajacego czy akceptowanego) FROM `znajomosci` WHERE `status`='1' AND (`user1`= 1 OR `user2` = 1)) blahywpadłem na pomysł jak to rozwiazac Robiłem również w taki sposób:
ale gdy jak było wiecej wyników to sie sypneło bo wybierało cos takiego SELECT Imie FROM uzytkownicy WHERE ID IN ((3),(12)) a powinno IN ((3),(1,2)) brakuje przecinka (IMG:style_emoticons/default/sad.gif) i nie wiem jak to zrobic Chyba zrobie tak że uzytkownik ID = 1 wysle do ID = 2 a ten (2) zaakceptuje to tworzy sie dwa wpisy ID|ID_zapra|ID_znaj| 1|1|2 2|2|1 Macie inny sposob moze jeszcze? ________________________________________________________________________________ _______________________________________ Problem rozwiazany (IMG:style_emoticons/default/smile.gif) Zrobiłem tak
Dziękuje wszystkim za pomoc (IMG:style_emoticons/default/smile.gif) oczywiscie "Pomógł" bedzie (IMG:style_emoticons/default/winksmiley.jpg) Pozdrawiam Ten post edytował wolacinio 25.09.2010, 09:04:04 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 23:50 |