Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]INNER, Problem z łączeniem tabeli
tomczyk20151
post
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)
  1. mysqli_query($conn,"select * from users JOIN friend ON (users.id=friend.id_drugiego) AND (friend.potwierdzenie=1)");

to już to {z działającym online} wysypuje mi błąd
  1. mysqli_query($conn,"select * from users JOIN friend ON (users.id=friend.id_drugiego) AND (friend.potwierdzenie=1) and ('".$czas_czat."' < user.act_time) AND (`user.id` != '".$id_usera."' ");

Jak mogę sobie poradzić, używanie WHERE nic nie pomaga
próbowałem też tak
  1. mysqli_query($conn,"select * from users LEFT JOIN friend ON (users.id=friend.id_drugiego) AND (friend.potwierdzenie=1) WHERE ('".$czas_czat."' < user.act_time) AND (`user.id` != '".$id_usera."')");

Proszę o pomoc

Poradziłem sobie (IMG:style_emoticons/default/smile.gif) temar do zamknięcia
  1. mysqli_query($conn,"select * from users LEFT JOIN friend ON ((users.id=friend.id_drugiego) AND (friend.potwierdzenie=1)) WHERE ('".$czas_czat."' < users.act_time) AND (users.id != '".$id_usera."' ) ");


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tomczyk20151
post
Post #2





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 10.11.2015
Skąd: Sierpc

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


AAAAAAAAAAAAA poddaje się (IMG:style_emoticons/default/co_jest.gif) (IMG:style_emoticons/default/co_jest.gif) (IMG:style_emoticons/default/co_jest.gif) (IMG:style_emoticons/default/withstupidsmiley.gif)

Postaram się pokazać o co mi chodzi, mam 2 tabele tabela users, przedstawia się następująco

(IMG:https://snag.gy/se3cCx.jpg)

Z tej tabeli pobieram kolumnę id, name, surname, act_time


Zaś tabela friend jest taka
(IMG:https://snag.gy/xmORLQ.jpg)

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
  1. mysqli_query($conn,"SELECT * FROM friend JOIN users ON friend.potwierdzenie = '1' WHERE friend.do = '".$moje_id_bazy_danych."'");
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.


  1. mysqli_query($conn,"SELECT friend.*, users.* FROM friend LEFT JOIN users ON users.id = friend.od WHERE '".$czas_czat."' < users.act_time AND friend.do = '".$moje_id_bazy_danych."' AND friend.potwierdzenie = '1'");

Ok, rozwiązałem problem (IMG:style_emoticons/default/smile.gif) (patrz góra [dla potomków (IMG:style_emoticons/default/biggrin.gif) ])

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
  1. '".$czas_czat."' < users.act_time
może za to odpowiadać, no ale jak to mogę rozgryźć?

Go to the top of the page
+Quote Post
bostaf
post
Post #3





Grupa: Zarejestrowani
Postów: 374
Pomógł: 79
Dołączył: 6.04.2010
Skąd: Ostrów Wielkopolski

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


Cytat(tomczyk20151 @ 30.05.2017, 20:12:32 ) *
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 (IMG:style_emoticons/default/wink.gif)

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ść?
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: 10.10.2025 - 13:57