Eredmény: 1 - 6 (6) összesen

Téma: php lapozas véletlen sorrendel

  1. #1
    Bölcs
    Csatlakozott
    11-03-05
    Hely
    UK
    Hozzászólás
    501
    Begyűjtött 66 köszönetet
    52 hozzászólásával

    Alapbeállítás php lapozas véletlen sorrendel

    Hali,

    A következő a problémám:
    Van egy sql táblám tele képekkel. Kirakom belőle a képeket, de egyszerre csak 10-et és lapoztatom egy lapozo script-el. Ez tökéletesen működik. Viszont a sok kép miatt rentgeteg oldalra lesz betördelve, és a látogatók nem nézik meg a képeket a hátrébb lévő oldalakon. Ezért szeretném a képeket véletlenszerűen sorbarendezni és utánna oldalakra tördelni az eredményt. Egyszerűen nem találok rá megoldást. Ha simán ORDER BY RAND()-al rendezem és LIMIT-el tördelem, akkor minden oldalon újrarendezi, így előfordul, hogy ugyanaz a kép 2 oldalon is megjelenik. Session-be nem rakhatom a berendezett táblát, mert rentgeteg képről van szó, így lassú lehet. Próbálkoztam a temp táblával is, de az csak addig él amig fut a script, ezért a lapozásnál mikor frissül az oldal, törli a temp táblát. Van erre valami ésszerű megoldás?!



  2. #2
    Rubyist Geri logója
    Csatlakozott
    07-12-15
    Hely
    \x90
    Hozzászólás
    5.749
    Begyűjtött 1.432 köszönetet
    895 hozzászólásával

    Alapbeállítás re: php lapozas véletlen sorrendel

    Idézet frankcrk eredeti hozzászólása Hozzászólás megtekintése
    Session-be nem rakhatom a berendezett táblát, mert rentgeteg képről van szó, így lassú lehet.
    Ne rakd be az egesz tablat, csak az id-kat egy serialized tombben.



  3. #3
    Bölcs
    Csatlakozott
    11-03-05
    Hely
    UK
    Hozzászólás
    501
    Begyűjtött 66 köszönetet
    52 hozzászólásával

    Alapbeállítás re: php lapozas véletlen sorrendel

    Idézet Geri eredeti hozzászólása Hozzászólás megtekintése
    Ne rakd be az egesz tablat, csak az id-kat egy serialized tombben.
    Azt hittem van más módszer, de a session-t nem tudom kikerülni.
    Megcsináltam úgy ahogy írtad...nem tűnik lassúnak, szal egyenlőre úgy marad.



  4. #4
    Hekker 0xFF logója
    Csatlakozott
    09-08-21
    Hozzászólás
    1.079
    Begyűjtött 168 köszönetet
    118 hozzászólásával

    Alapbeállítás re: php lapozas véletlen sorrendel

    Ha rengetek képed van akkor nem ajánlom az ORDER BY RAND() ot. Vegyél ki mondjuk 2000 kép ID-t és azt az array-t rendezd véletlen sorrendbe shuffle().



  5. #5
    Bölcs
    Csatlakozott
    07-08-28
    Hozzászólás
    1.030
    Begyűjtött 150 köszönetet
    109 hozzászólásával

    Alapbeállítás re: php lapozas véletlen sorrendel

    Erre van egy egyszerü megoldás. csinálsz egy sorrend mezőt. Ebbe generálsz egy számot, valami jó nagyot. Erre raksz indexet is. Ez alapján jeleníted meg a sorrendet a felhasználóknak. Ennek a mezőnek a tartalmát óránként, két óránként, naponként újra generálod. Gyors, adatbázis alapú.



  6. #6
    Bölcs rendszergazda logója
    Csatlakozott
    09-07-25
    Hozzászólás
    565
    Begyűjtött 108 köszönetet
    65 hozzászólásával

    Alapbeállítás re: php lapozas véletlen sorrendel

    Idézet TLoF eredeti hozzászólása Hozzászólás megtekintése
    Erre van egy egyszerü megoldás. csinálsz egy sorrend mezőt. Ebbe generálsz egy számot, valami jó nagyot. Erre raksz indexet is. Ez alapján jeleníted meg a sorrendet a felhasználóknak. Ennek a mezőnek a tartalmát óránként, két óránként, naponként újra generálod. Gyors, adatbázis alapú.
    Nem szép megoldás, mert ha pont az újra generálás előtt egy perccel nézi valaki a listát, lapoz, majd közben újragenerálja alatta a program a sorrendet, akkor neki megváltozik a listája munkameneten belül, plusz így generálások között mindenki ugyan azt a sorrendet látja akár több alakalommal is adott időn belül, nem valódi véletlen sorrendet minden alkalommal.

    Akkor már inkább session kezelés és Geri ötlete ami szebb és nem is tűnik sokkal bonyolultabbnak.


    x

A téma címkéi:

Könyvjelzők

Hozzászólás szabályai

  • Új témákat nem hozhatsz létre
  • Válaszokat nem küldhetsz
  • Fájlokat nem csatolhatsz
  • A hozzászólásaidat nem módosíthatod
  •