Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Losowa kolejność, ale stała
Forum PHP.pl > Forum > PHP
joshuaBE
Witam,


Mam pewną ilość artykułów, którą chciałbym ustawić w losowej kolejności i innej na każdej podstronie, ale tak żeby po odświeżeniu danej strony kolejność ta była taka sama. W C można dać srand(ziarno) i problem jest załatwiony, w nowszych wersjach PHP takie rozwiązanie nie działa. W jaki sposób można podejść do tematu? smile.gif

Dzięki!
erix
Wrzuć sobie tę kolejność do sesji, albo zapisz do jakiegoś pliku z metadanymi do danej strony. winksmiley.jpg
Pilsener
Cytat
w losowej kolejności i innej na każdej podstronie, ale tak żeby po odświeżeniu danej strony kolejność ta była taka sama
- najlepiej dodać dodatkowe pole w tabeli "artykuły", nazwać je "miejsce" - w ten sposób pobierać wszystkie artykuły a następnie przydzielać je do danego miejsca (np. artykuł 34 miejsce 3, artykuł 567 miejsce 5), by kolejność była stała wystarczy użyć sortowania po ID.

Edit: jeśli wyświetlane mają być tylko niektóre artykuły, to lepiej zrobić dodatkową tabelę:
ID_artykulu | ID_miejsca

I na podstawie tej tabeli wyświetlać artykuły w danym miejscu.
joshuaBE
erix-> no tak, tylko co jak dojdą nowe artykuły, albo zostaną usunięte? Ręcznie zmieniać kolejność za każdym razem nie wchodzi w gre. Możnaby w momencie dodawania/usuwania artykułu edytować taki plik z metadanymi, ale przy takiej ilość podstron nie wiem czy serwer da rade. Chciałbym też uniknąć ręcznego ustawiania pozycji, no chyba że nie będzie innej opcji.


Pilsener -> Nie wiem czy dobrze rozumiem, ale jeśli zrobię tak jak mówisz to pozycje będą stałe, ale na wszystkich podstronach. Ja potrzebuję na każdej inną kolejność.

erix
A nie lepiej skorzystać z mechanizmu tagowania...?
joshuaBE
erix-> To znaczy?


http://www.php.net/manual/en/function.shuffle.php#96956

Tutaj ktoś wrzucił rozwiązanie, ale niestety wygląda na to że nie działa :/
toel
mówisz o funkcji seoShuffle?
A co konkretnie tam nie działa, bo teraz ją testowałem to wygląda na to, że działa dokładnie tak jak potrzebujesz smile.gif
joshuaBE
toel-> Być może zależy od wersji PHP? U mnie zawsze jest inna kolejność. No ale teraz to właściwie nieważne. Udało mi się napisać prostą funkcje losującą, także dla każdej podstrony podaje ziarno i mam losową, ale stałą kolejność smile.gif
erix
Cytat
erix-> To znaczy?

Że do artykułów przypisujesz tagi, a pokrewne są wybierane spośród innych opisanych takimi samymi. winksmiley.jpg

Czyli np. masz 3 artykuły
  • zuo -> tag1, tag2
  • asd -> tag1, tag3
  • sss -> tag2, tag3

I załóżmy, że wyświetlasz pierwszy z nich, to wówczas z pokrewnych będą poszukiwane powiązane wyłącznie wg tych samych słów kluczowych. Sposób IMHO bardziej efektywny i elastyczny - nie trzeba samemu uaktualniać listy, a zawsze będą to powiązane informacje.
joshuaBE
erix-> Właściwie taki system mam już na stronie, natomiast tutaj potrzebna mi jest koniecznie lista wszystkich artykułów. No ale jak pisałem wyżej, udało mi się z tym uporać, także dziękuję wszystkim za pomoc smile.gif
Pozdro!
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.