![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Witam nie znam dobrze sql wiec musze o cos zapytac
Mam takie zapytanie
Mam tabele znajomi i w niej kolumny id tresc dodal dla_kogo stan data Gdy ktos wysyla zaproszenie user moze je akceptowac juz odrzucic jednak gdy zaakaceptuje to znajmomy wyswietla sie tylko w profilu osoby odbierajacej zaproszenie a w profilu osoby wysylajacej juz nie czy ktos moze mi powiedziec jak powinno wygladac zapytanie zeby widziala i osoba wysylajaca jak i osoba odbierajaca zaproszenie?? P.S kolumna STAN moze miec 3 wartosci CZEKAM gdy wyslalo ODRZUCONO gdy nie akceptowano i AKCEPTOWANO jesli akceptowano -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 230 Pomógł: 27 Dołączył: 27.05.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Działa to na zasadzie, że ma jakąś nazwe użytkownika klikam na nią i przenosi mnie do jego profilu i tam wyświetlają się znajomi ?
Jeśli tak to ja takie zapytanie bym zrobił w stylu :
W takim zapytaniu wchodząc np na profil użytkownika będziesz widział znajomych, którym on wysłał zaproszenie jak i znajomych, którzy jego zaprosili. Przetestuj dla wszystkiego bo nie sprawdzałem zapytania.. Ten post edytował nithajasz 28.05.2008, 17:32:41 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Nie nie to nie to juz mialem podobne zapytanie bez nawiasow teraz user ma tez samego siebie w znajomych ogolnie zmienna $_GET['user'] wskazuje na nazwe uzytkownika przegladanego profilu
EDIT: Moze to lepiej opisze a wiec jest sobie user marcio i user Xaxas i Bios, user Xaxas i Bios wysylaja mi zaproszenie A user Marcio akceptuje tylko zaproszenie uzytkownika Xaxas a zaproszenie Bios'a odrzuca teraz gdy sie wejdzie w moj profil czyli Marcio widac znajomi Xaxas jednak gdy wejde na profil Xaxas nie ma on zadnych znajomych Hmm czy teraz wytlumaczylem jasniej? Ten post edytował marcio 28.05.2008, 17:54:38 -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 230 Pomógł: 27 Dołączył: 27.05.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
EDIT: Moze to lepiej opisze a wiec jest sobie user marcio i user Xaxas i Bios, user Xaxas i Bios wysylaja mi zaproszenie A user Marcio akceptuje tylko zaproszenie uzytkownika Xaxas a zaproszenie Bios'a odrzuca teraz gdy sie wejdzie w moj profil czyli Marcio widac znajomi Xaxas jednak gdy wejde na profil Xaxas nie ma on zadnych znajomych Czyli tak jak wchodzisz na profil Marcio sprawdzasz w bazie czy ma jakichś przyjaciół.
Wchodzisz na profil Xaxas sprawdzasz czy on ma jakiś znajomych.
Czyli, jeśli w bazie masz rekord : id = 1 dla_kogo = xasas_id dodal = marcio_id To przy takiej wersji zapytania pobierzesz to co chcesz.. W 1 wypadku znajdzie Ci wszystkie rekordy gdzie zaproszenie zostało przyjete (stan=1) i gdzie Marcio wysłał zaproszenia lub je otrzymał. W 2 przypadku znajdzie wszystkie rekordy gdzie Xasas wysłał lub dostał zaproszenie i zaproszenie jest zaakceptowane.
Krócej musisz sprawdzić czy użytkownik znajduje się w którymś z tych dwóch pól i sprawdzić stan zaproszenia jeśli jest zaakceptowane to wyświetlić to. Jeśli Bios wejdzie na te profile to zobaczy u Marcios znajomego Xasas a u Xasas Marcios. Edit : zapytania uproszczone chodzi o schemat... Ten post edytował nithajasz 28.05.2008, 18:16:16 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Hmm albo ja mam zle zbudowana ta tabele i bede musial zmienic bo:
Dalej W profilu Xaxas jest on jako znajmomy a u mnie jestem ja i Xaxas Oto screen z tabeli znajomi: http://img253.imageshack.us/my.php?image=zrzutekranu2lo8.png Ogolnie zastanawialem sie tez na union select'em ale nic z tego P.S za pomoca twojego ostatniego zapytanie dzieje sie tak jak z moimi poprzednimi gyd Bios wejdzie na moj profil zobaczy Marcio i Xaxas ale gdy wejdzie na profil Xaxas bedzie tylko Xaxas P.S2 ogolnie chodzi mi o to ze jesli Xaxas wysle mi zaproszenie i jak akcpetuje mam byc w jego profilu a on w moim i vice versa Ten post edytował marcio 28.05.2008, 18:31:20 -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 230 Pomógł: 27 Dołączył: 27.05.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Wykonaj w phpmyadminie zapytanie :
Zapytanie powinno zwrócić Ci 3 rekordy id: 1, 2 ,3.. i te rekordy mógłbyś wyświetlić w profilu gracza np w taki sposób:
Tak nawiasem, mówiąc takie coś jak stan lepiej jest przechowywać jako tinyint i zmieniać mu wartości w zależności od stanu np. 0 - nie odczytany, 1 - zaakceptowany, 2 - odrzucony. Tak samo co do użytkowników, to ja bym podawał ich id a nie nazwy.. Edit : Zrobiłem sobie podobną bazę tylko zamiast nazw userów dalem A, B, C tak jak Ty masz 3 pierwsze rekordy. Wklepałem do phpMyAdmina :
I wyrzuciło wszystkie 3 rekordy więc zapytanie jest dobre. Reszta to kwestia co zrobisz z wynikami tego zapytanie jak je wypiszesz... Ten post edytował nithajasz 28.05.2008, 18:50:43 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Ok masz +
Jednak mam 2 pytanie dlaczego bez LIke nie dzialalo?? I jeszcze jedno wiem ze mecze ale gdy Xaxas wysle mi zaproszenie a ja jemu i obydwaj zaakceptujemy to w profili bede mial go jako podwojnego znajomego sorki ale przewaznie jakos mi lepiej idzie kodznie ![]() -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 230 Pomógł: 27 Dołączył: 27.05.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
<a href=\"user.php?user='.$dodal.'\"> Jednak mam 2 pytanie dlaczego bez LIke nie dzialalo?? I jeszcze jedno wiem ze mecze ale gdy Xaxas wysle mi zaproszenie a ja jemu i obydwaj zaakceptujemy to w profili bede mial go jako podwojnego znajomego sorki ale przewaznie jakos mi lepiej idzie kodznie ![]() Musisz przy wysyłaniu dać jakąś funkcję filtrującą czy takie zaproszenie może wysłane. Np. jeśli Marcio wysłał zaproszenie Xasas to w momencie gdy Xasas bedzie chciał wysłać zaproszenie powinieneś sprawdzić coś takiego :
Jeśli mysql_num_rows zwróci, że istnieje taki rekord to zaproszenia użytkownik nie może wysłać. Dlaczego LIKE? Jakoś tak z przyzwyczajenia tego używam do porównywania stringów, jakbyś chciał to zapytanie :
też zwróci te same rekordy. Taka rada zmień na id userów z nazw jest naprawdę wygodniejsze i funkcjonalniejsze przy bardziej rozbudowanej bazie. Ten post edytował nithajasz 28.05.2008, 19:02:47 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
No to w sumie juz wiem jak to zrobic 1 min kodzenia mam cos podobnego w dodawaniu zaproszen ze ktos sobie sam nie moze wyslac zaproszenia i dany user nie mozna wyslac 2 zaproszen jesli juz dana osoba akceptowala to albo dodam union select i bedzxie jedno zapytanie albo zrobie to na 2
![]() P.S a z tego LIKE nie mozna mienic na zwykle WHERE bo WHERE jest szybsze tylko cos dzialac nie chcialo ale coz nie wazne z czasem i tego sie naucze btw: co do nazw kolumn to wiem ze lepiej to robic na int tak jak to mam w userahc ale coz juz mi sie zmieniac nie chce -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 03:37 |