Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Skrypt czatu - Stała liczba rekordów
denis94
post
Post #1





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 8.08.2010
Skąd: Warszawa

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


Witam. Piszę coś w rodzaju mini czatu na stronę www.

Struktura tabeli czat (są tu gromadzone wiadmości): id, idczatu, nick, wiadomosc.

Działa to jak generator czatów. Wszystkie wiadomości wszystkich czatów są w jednej tabeli, w każdym czacie wyświetlają się tylko rekordy (wiadomości) o danym idczatu. Mój problem polega na tym, że potrzebuję dodać do tego skryptu funkcję która działały by następująco.

Gdy czat o idczatu ma rekordów mniej niż 50 nic się nie dzieje. Gdy użytkownik doda 50 rekord dla danego czatu, rekord doda się ale jednocześnie usunie się najstarszy rekord. Powinno działać to tak, że czat zawsze będzie miał 50 wiadomości, bo podczas dodawania nowej usuwa się najstarsza.

Nie mogę sobie poradzić z zapytaniem który by coś takiego sprawdzał i wykonywał. Proszę o pomoc.

Ten post edytował denis94 21.11.2010, 20:43:39
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
r4xz
post
Post #2





Grupa: Zarejestrowani
Postów: 673
Pomógł: 106
Dołączył: 31.12.2008

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


możesz dać przy wyświetlaniu limit na 50 wiadomości albo pokazać co już "wystrugałeś", to doradzim jak złożyć całość do kupy
Go to the top of the page
+Quote Post
Crozin
post
Post #3





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

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


Usunięcie zbędnych rekordów:
  1. DELETE FROM tbl_name WHERE chat_id = :cid ORDER BY created_at DESC LIMIT 999999999 OFFSET 50;
  2. -- nie jestem pewien czy w każdej bazie można użyć samego OFFSET bez LIMIT
Takie zapytanie możesz użyć po dodaniu rekordu.
Go to the top of the page
+Quote Post
denis94
post
Post #4





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 8.08.2010
Skąd: Warszawa

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


Dziękuję za pomoc.

Łącząc kilka pomysłów razem wymyśliłem coś takiego.

Liczę liczbę rekordów, gdy rekorddów jest 50 - podczas dodawania usuwam najstarszy.

  1. if($liczba >= 50)
  2. {
  3. $zapytanie2 = "DELETE FROM czat WHERE idczatu = '$idczatu' ORDER BY id ASC LIMIT 1";
  4. $wynik2 = mysql_query($zapytanie2);
  5. }


Ten post edytował denis94 21.11.2010, 23:04:53
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 - 17:57