Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][JavaScript] Chat?
b4x
post
Post #1





Grupa: Zarejestrowani
Postów: 658
Pomógł: 95
Dołączył: 20.12.2005
Skąd: N54,35° E18,63° (Gdańsk)

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


Witam mam pytanie - jak połączyć dwóch użytkowników do jednej rozmowy.

Mam bazę:

Użytkownicy

id | last_ping | status

* id - randomowo generowany string, który identyfikuje usera.
* last ping - chyba wiadomo...
* status [do rozpoznania, czy użytkownik szuka rozmowy, czy jest w trakcie rozmowy])

I powiedzmy że chcę jednego z drugim podłączyć do rozmowy... czyli np.

SELECT * FROM `uzytkownicy` WHERE `status` = "0" LIMIT 1 - 0 = szuka rozmowy.

Powiedzmy znajdzie mi: zo1c4e


Teraz chce zrobic tabele Rozmowy...

Ale kompletnie nie wiem jak zrobić by wyglądała ok, myślałem nad: id | user1 | user2 | status lub id | serialize(user1, user2) | status...

(IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował b4x 5.04.2009, 17:37:32
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


No to tak.

Przede wszystkim potrzebna jest jakaś tabela do przechowywania użytkowników. Powiedzmy:
id, username, status
Następnie potrzebna będzie tabela, w której zapisane będą wiadomości do danej rozmowy:
id, chat_id, user_id, contents, created_at
Potrzebne będą też kanały/chaty/okna rozmów (cokolwiek tam chcesz)
id
No i na koniec jeszcze trzeba powiązać użytkowników z rozmowami:
chat_id, user_id

Ewentualnie jeżeli jesteś pewien, że ograniczenie się do dwóch osób w rozmiowe nie zostanie nigdy złamane, możesz usunąć ostatnią tabelę i to powiązanie dać bezpośrednio w tabeli rozmowy.

Teraz rozpoczynając nową rozmowę, tworzysz nowy rekord w tabeli rozmów oraz dwa w tabeli powiązań. Z obsługą wiadomości na pewno sobie poradzisz. A jeżeli ma to być takie w miarę real-time, to przyda się jeszcze AJAX by w tle co np. 5 czy 10 sekund sprawdzać czy nie ma nowych wiadomości.
Go to the top of the page
+Quote Post
Merko
post
Post #3





Grupa: Zarejestrowani
Postów: 33
Pomógł: 1
Dołączył: 10.10.2007
Skąd: Olsztyn

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


Jak dla mnie powinieneś zrobic tabele w bazie "odpowiedzi"
Tam będą ładowane wszystkie odpowiedzi każdego chata.
Ta tabela by miala taki wyglad | id | id_chatu | tresc | data |


Następna tabela "chaty" składała by się z | id | id_user1 | id_user2

id_chatu(z tabeli "odpowiedzi") == id(z tabeli "chaty")
user dodaje odpowiedz ona sie zapisuje w odpowiedzi a skrypt czyta z WHERE id_chatu = "id"




Może nie po polsku ale wydaje mi się ze poprawnie
Go to the top of the page
+Quote Post

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: 23.08.2025 - 01:22