![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 142 Pomógł: 3 Dołączył: 27.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
interesuje mnie wyświetlanie w profilu osób które ostanio ten profil odwiedziły (coś takiego jak jest na tym forum - po wejściu na profil widzimy kto go osatnio odwiedził) Chciałbym wyświetlić ostatnie 10 osób. Jak takie coś jest zrealizowane od strony bazy danych? Struktura tabeli. Jak to dobrze rozwiązać? Proszę o jakieś pomysły. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 439 Pomógł: 21 Dołączył: 28.06.2007 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
Hmmm jak na moje oko można by zrobić tabele w której są pola
|kiedy|ID_kto|ID_kogo| i w kiedy masz masz date kiedy ktoś wszedł w ID_kto masz ID osoby która weszła a w ID_kogo masz id osoby na którą patrzyli.... jeśli chcesz mieć np. 10 to przy wejściu do profilu dajesz Kod $kiedy = mktime (date("s"),date("i"),date("H"),date("m"),date("d"),date("Y")); //ustalamy kiedy to kiedy... mysql_query("insert into `tabela` (`kiedy`,`ID_kto`,`ID_kogo`) values ('".$kiedy."','".$kto."','".$kogo."')");//dodajemy info o wejsciu... za $kogo i $kto wstaw swoje wartości/zmienne... mysql_query("delete from `tabela` sort by `kiedy` ASC limit 9,9999")//Usuwamy wszystkie informacje o wejsciach poza 10 najnowszymi.... Co do ASC/DESC zawsze mi sie myli... w każdym bądz razie chodzi mi o malejąco:P Jak mówiłem... nie wiem czy tam ma być ASC czy DESC:P Pozdro:D |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 142 Pomógł: 3 Dołączył: 27.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
To z dodatkową tabela to oczywisty pomysł (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ale dzięki
A to z usuwaniem to chyba nie wyszło, bo zostawi osatnie 10 rekordów ze wszystkich, a nie 10 ostatnich dla każdego użytkownika:) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 439 Pomógł: 21 Dołączył: 28.06.2007 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
Kod mysql_query("delete from `tabela` where `id_kogo`='".$kogo."' sort by `kiedy` ASC limit 9,9999") nie pomyślałem:P |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 142 Pomógł: 3 Dołączył: 27.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jest jeszcze jeden problem.... w DELETE nie działa OFFSET i LIMIT 9,9999 nie zadziała.
Jak można inaczej usunąć rekordy z pominięciem pierwszych 10? (wersja mysql 4.0 - nie obsługuje podzapytań) Poradziłem sobie tak:
W jednym zapytaniu to chyba trudno będzie... Ten post edytował mrjozo 21.11.2007, 20:54:48 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 439 Pomógł: 21 Dołączył: 28.06.2007 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
Cytat Jest jeszcze jeden problem.... w DELETE nie działa OFFSET i LIMIT 9,9999 nie zadziała. albo czytać nie umiem albo manual mówi że można dodawać do delete limit...http://dev.mysql.com/doc/refman/4.1/en/delete.html |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 142 Pomógł: 3 Dołączył: 27.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Napisałem, że nie działa OFFSET
LIMIT 1 <- to LIMIT LIMIT 9,1 <- to LIMIT z OFFSETEM Porównaj to: http://dev.mysql.com/doc/refman/4.1/en/delete.html i to: http://dev.mysql.com/doc/refman/4.1/en/select.html Ten post edytował mrjozo 21.11.2007, 20:59:55 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 439 Pomógł: 21 Dołączył: 28.06.2007 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
noo dziś ciągle robie jakieś nie dopatrzenia:P
dziś czytać nie umiem:p Ten post edytował dadexix 21.11.2007, 21:05:28 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.09.2025 - 00:59 |