Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt czatu - Stała liczba rekordów
Forum PHP.pl > Forum > PHP
denis94
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.
r4xz
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
Crozin
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.
denis94
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. }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.