Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/mysql] Ostatnio odwiedzili profil...
mrjozo
post
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.


--------------------
W chwili wolnego zapraszam na gry Dla każdego coś się znajdzie;)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
dadexix
post
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


--------------------
"Na przykład zmiennej $jestem_najlepszy przypisujemy wartość logiczną TRUE"
Ja: użyj funkcji[...]
Grins: mów normalnie do mnie a nie po polsku
Ja: normalnie to znaczy jak?
Grins: No w PHP... inaczej mój parser ledwo kuma:)
Go to the top of the page
+Quote Post
mrjozo
post
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ł 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:)


--------------------
W chwili wolnego zapraszam na gry Dla każdego coś się znajdzie;)
Go to the top of the page
+Quote Post
dadexix
post
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


--------------------
"Na przykład zmiennej $jestem_najlepszy przypisujemy wartość logiczną TRUE"
Ja: użyj funkcji[...]
Grins: mów normalnie do mnie a nie po polsku
Ja: normalnie to znaczy jak?
Grins: No w PHP... inaczej mój parser ledwo kuma:)
Go to the top of the page
+Quote Post
mrjozo
post
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:
  1. SELECT v_id FROM visitors WHERE visited_id=? ORDER BY v_id DESC LIMIT 9, 1

  1. DELETE FROM visitors WHERE visited_id=? AND v_id <= ?


W jednym zapytaniu to chyba trudno będzie...

Ten post edytował mrjozo 21.11.2007, 20:54:48


--------------------
W chwili wolnego zapraszam na gry Dla każdego coś się znajdzie;)
Go to the top of the page
+Quote Post
dadexix
post
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


--------------------
"Na przykład zmiennej $jestem_najlepszy przypisujemy wartość logiczną TRUE"
Ja: użyj funkcji[...]
Grins: mów normalnie do mnie a nie po polsku
Ja: normalnie to znaczy jak?
Grins: No w PHP... inaczej mój parser ledwo kuma:)
Go to the top of the page
+Quote Post
mrjozo
post
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


--------------------
W chwili wolnego zapraszam na gry Dla każdego coś się znajdzie;)
Go to the top of the page
+Quote Post
dadexix
post
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


--------------------
"Na przykład zmiennej $jestem_najlepszy przypisujemy wartość logiczną TRUE"
Ja: użyj funkcji[...]
Grins: mów normalnie do mnie a nie po polsku
Ja: normalnie to znaczy jak?
Grins: No w PHP... inaczej mój parser ledwo kuma:)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 10:43