[MySQL][PHP]INNER, Problem z łączeniem tabeli |
[MySQL][PHP]INNER, Problem z łączeniem tabeli |
28.05.2017, 03:18:40
Post
#1
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 10.11.2015 Skąd: Sierpc Ostrzeżenie: (0%) |
Mam problem z łączeniem tabeli, mianowicie posiadam dwie tabele users i friend. Na liście wyświetlam osoby online (znajomych), moich znajomych pobieram z tabeli friend to o ile to dobrze działa, no prawie(niestety są cały czas online)
to już to {z działającym online} wysypuje mi błąd
Jak mogę sobie poradzić, używanie WHERE nic nie pomaga próbowałem też tak
Proszę o pomoc Poradziłem sobie temar do zamknięcia
Jednak nie do zamknięcia. O ile wyświetla wszystko dobrze to jest problem, że próbuję się pozbyć "siebie". Niestety mnie wyświetla jako osoba online w moich znajomych. Jak to mogę rozwiązać? Przyznaje, że mnie już ku....a bierze. Proszę o pomoc |
|
|
28.05.2017, 10:55:05
Post
#2
|
|
Grupa: Zarejestrowani Postów: 374 Pomógł: 79 Dołączył: 6.04.2010 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) |
No to chyba coś z $id_usera jest nie tak. Sprawdzałeś, czy $id_usera na pewno przechowuje to co w kolumnie "id" tabeli "users"?
Spróbuj też INNER JOIN zamiast LEFT JOIN, albo LEFT JOIN z dodatkowym WHERE friend.id_drugiego IS NULL. A jak to nie wypali to może wrzuć na sql fiddle te tabele i kilka danych do potestowania. |
|
|
28.05.2017, 11:14:34
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) |
Warunek, który ma wyeliminować aktualnego użytkownika z listy zalogowanych znajomych zapewne powinien dotyczyć tabeli friend, a nie users.
Ten post edytował mortus 28.05.2017, 11:41:19 |
|
|
30.05.2017, 19:12:32
Post
#4
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 10.11.2015 Skąd: Sierpc Ostrzeżenie: (0%) |
AAAAAAAAAAAAA poddaje się
Postaram się pokazać o co mi chodzi, mam 2 tabele tabela users, przedstawia się następująco Z tej tabeli pobieram kolumnę id, name, surname, act_time Zaś tabela friend jest taka Z powyższej tabeli pobieram wszystko, czyli od, do, potwierdzenie. Używając kodów, zamieszczonych w wyższych wypowiedziach niestesty, nie dość, że widać mnie to i jeszcze widać osoby, których wcale nie mam w znajomych. Dla testów napisałem mały kodzik, gdzie w tabeli friend mam 3 rekordy (od = 1 do = 3 potwierdzenie = 1, od = 4 do = 1 potwierdzenie = 1, od = 5 do = 3 potwierdzenie = 1) Moje id w tabeli users wynosi 1. Tak więc zamiast wyświetlić mi usera o ID 4 wyświetla mi dodatkowo usera o od 1 - czyli mnie + user o id 5. Jak to mam rozwiązać, cholernie proszę o pomoc. Nie mam już zielonego pojęcia gdzie jest błąd. Po nocach spać nie mogę przez to.
Ok, rozwiązałem problem (patrz góra [dla potomków ]) Teraz jest następny, po załadowaniu strony dopóty, dopóki nie minie 25 sekund (fragment strony odświeża się bez przeładowania strony) to znajomi są widoczni ząś po przeładowaniu niestety wyskakuje mi napis: NIK NIE JEST ONLINE. Oczywiście jeśli user jest aktywny to co 20 sekund jest updatowana kolumna act_time w tabeli users, więc w rzeczywistości jest online. Myślę, że może za to odpowiadać, no ale jak to mogę rozgryźć? |
|
|
31.05.2017, 10:57:30
Post
#5
|
|
Grupa: Zarejestrowani Postów: 374 Pomógł: 79 Dołączył: 6.04.2010 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) |
Teraz jest następny, po załadowaniu strony dopóty, dopóki nie minie 25 sekund (fragment strony odświeża się bez przeładowania strony) to znajomi są widoczni ząś po przeładowaniu niestety wyskakuje mi napis: NIK NIE JEST ONLINE. A może "NIK NIE" to nazwa jednego z użytkowników? Wtedy ten komunikat miałby sens A poważnie to skoro po asynchronicznym przeładowaniu lista jest pusta, to coś jest na rzeczy z kodem wywoływanym ajaxem. Pytanie - aktualizacja pola act_time jest robiona tym samym ajaxem, którym sprawdzana jest aktywność? |
|
|
31.05.2017, 17:38:25
Post
#6
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 10.11.2015 Skąd: Sierpc Ostrzeżenie: (0%) |
Udało mi się to ogarnąć
pomogło , mimo iż includowałem inny plik, który na samej górze ma session_start to i tak musiałem dodać do obecnego pliku, oj biada mi biada O ile to się udało to nasuwa się kolejne pytanie Oczywiście moje ID = 1. TABELA FRIEND I tu zaczyna się pytanie, jak widzicie drodzy koledzy na powyższym obrazku, są dwa rekordy, gdzie ktoś mi wysłał zaproszenie, oczywiście potwierdziłem je. I jest jeden rekord gdzie ja wysłałem komuś zaproszenie, ten ktoś je również potwierdził. Załóżmy, że wszyscy są online, warunki wszystkie są spełnione, jest wszystko cycuś glancuś. Używając kodu
Wyświetlają mi się tylko osoby, które zaprosiły mnie. Co mam wstawić do powyższego kodu, aby oprócz osób online, które mnie zaprosiły były widoczne osoby, które ja zaprosiłem? Próbowałem tak
Ale niestety zamiast osoby do której wysałem zaproszenie pokazuję się JA.
może coś w całym kodzie jest nie tak. To jest już właśnie ostatni problem i niestety lipa Bardzo przepraszam za taką ilość SPAMU w tym temacie. Udało się, trochę to dziwnie zrobiłem, no ale działa. Oto kod, napiszcie co myślicie o takim rozwiązaniu:
Oczywiście kod działa jak natura tzn ja chciałem Z GÓRY BARDZO WAM DZIĘKUJĘ ZA KAŻDĄ PRÓBĘ POMOCY Ten post edytował tomczyk20151 31.05.2017, 17:14:17 |
|
|
1.06.2017, 11:31:24
Post
#7
|
|
Grupa: Zarejestrowani Postów: 374 Pomógł: 79 Dołączył: 6.04.2010 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) |
Oto kod, napiszcie co myślicie o takim rozwiązaniu Cool Ale ja bym to jednym zapytaniem zrobił, mniej mielenia i większa czytelność:
To może na zamotane wyglądać, ale jak przejdziesz na zapytania parametryczne to będzie czytelniejsze. Albo gdybyś chciał z tego zrobić procedurę albo funkcję w bazie. Aha, i data type dla act_time proponowałbym DATETIME. |
|
|
Wersja Lo-Fi | Aktualny czas: 24.04.2024 - 03:13 |