Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Skrypt gości na profilu
djkrc
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 2
Dołączył: 20.02.2010

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


Witam, mam problem z wymyśleniem skryptu, który będzie utrzymywał stan 5 rekordów w bazie danych, a dokładnie pięciu ostatnich gości na profilu użytkownika.
Interesuje mnie coś, co będzie usuwać ostatniego gościa, a jednocześnie lub za pomocą drugiego zapytania SQL będzie dodawać nowego gościa, o ile nie ma go jeszcze w bazie.
Nie wiem czy zrozumiale wytłumaczyłem o co mi chodzi.
Może ktoś z was ma jakiś pomysł, z góry dzieki za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Daiquiri
post
Post #2





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Sprawdzasz ile pozycji jest aktualnie w bazie jeżeli miej niż 5 to tylko sprawdzasz czy nazwa gościa jest w bazie. Jeżeli nie to dodajesz. W przypadku, gdy liczba pozycji jest równa 5 to sprawdzasz czy nazwa gościa jest w bazie, jeżeli tak to nie robisz nic, jeżeli jej nie ma to usuwasz najstarszą nazwę gościa i dodajesz nową. W czym masz konkretnie problem?
Go to the top of the page
+Quote Post
tehaha
post
Post #3





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


ja bym to zrobił tak:
- tworzysz tabelę gdzie zapisujesz gości odwiedzających profil włącznie z datetime
- pobierasz sobie 5 ostatnich (LIMIT 0,5) gości sortując po datetime i GROUP BY po id użytkownika

w ten sposób masz to bez żadnego sprawdzania i innego kombinowania
Go to the top of the page
+Quote Post
djkrc
post
Post #4





Grupa: Zarejestrowani
Postów: 19
Pomógł: 2
Dołączył: 20.02.2010

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


Wiem, że trzeba będzie użyć pola z wartościa time(); i porównać czas dodania wszystkich rekordów, jeżeli dodaje nowy, usuwam najstarszy, tylko jak mam sprawdzić, który z nich ma najmniejszą wartośćquestionmark.gif

@tehaha
nie chce bałaganu w bazie, niepotrzebne wartości chce usunąć

Ten post edytował djkrc 22.08.2010, 16:03:07
Go to the top of the page
+Quote Post
MateuszS
post
Post #5





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


ORDER BY `Time` ASC LIMIT 1 w zapytaniu


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
Daiquiri
post
Post #6





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Cytat(djkrc @ 22.08.2010, 17:00:38 ) *
Wiem, że trzeba będzie użyć pola z wartościa time(); i porównać czas dodania wszystkich rekordów, jeżeli dodaje nowy, usuwam najstarszy, tylko jak mam sprawdzić, który z nich ma najmniejszą wartośćquestionmark.gif

Może to są głupie pytania ale nie zbyt długo zajmuję się php i jak nigdy nie mam pojęcia jak to zrobić


Segregując (Order by) i ustawiając DESC lub ASC.

1. Tworzysz tabelę w bazie z polami np. czas i user
2. Możesz najpierw sprawdzić ilu userów jest w tabeli i
2.1 Jeżeli jest ich mniej niż 5 to sprawdzasz czy dany user jest wpisany -> jeżeli nie, to wrzucasz go do tabeli
2.2 Jeżeli userów jest już 5 to sprawdzasz czy dany user jest wpisany -> jeżeli nie, najpierw sprawdzasz, który z tych w tabeli jest najstarszy (ORDER BY czas) i go usuwasz. Potem dodajesz najnowszego :-)


@tehaha
A jak chcę trzymać w tabeli tylko 5 rekordów i ani jednego więcej? ;-)

Ten post edytował Daiquiri 22.08.2010, 16:07:36
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: 22.08.2025 - 03:39