Hirdetés

Új hozzászólás Aktív témák

  • Taci

    addikt

    Lenne ismét egy kérdésem, ami a tapasztalatlanságomból ered.

    Nyilván mind a pagination-nek és az infinite scroll-nak is át kell adnom, hogy mennyi elemmel fog dolgozni, hogy feleslegesen már ne próbáljon meg sorokat betölteni, ha egyszer elfogytak.

    Jelenleg a php kódban csak annyi van, hogy
    if ($result->num_rows > 0) {
      // a tartalom megjelenítése
    } else {
      echo "Elfogytak az elemek."; //  random szöveg csak magamnak
    }

    A JS függvény pedig újra és újra visszatér, hogy (jelenleg négyesével) betöltse az új sorokat. Egy idő után viszont elfogynak, viszont a JS függvény ilyenkor is kapcsolatot létesít, megtörténik az SQL lekérdezés is - szóval ez már csak forráspazarlás. (Még ha szemmel ez nem is látszódik, ha remarkolom az "Elfogytak az elemek" echo-t.)

    Így hát arra gondoltam, hogy ha már a JS pont ezt a PHP kódot hívja meg, amiben az SQL lekérdezés is van, így át tudom adni neki, hogy a lekérdezésben mennyi sor szerepel, így a JS-ben be tudom állítani, hogy ha a végére ért, akkor ne kérdezzen többször.

    Na igen ám, viszont a lekérdezésbe ugye belekerült a LIMIT is (jelenleg "LIMIT 4"), így a sorok számára mindig 4-et ad vissza (kivéve, amikor már nincs annyi benne vagy teljesen elfogytak belőle).
    $sql = "SELECT * FROM table ORDER BY order_by DESC LIMIT x OFFSET y"; (csak a példa kedvéért így írva most, mert amúgy prepare-rel van)

    Szóval ezt hogyan lehet szépen és hatékonyan megoldani?
    "Tudja" ez a lekérdezés, hogy eredetileg milyen sorokat tartalmazott, mielőtt alkalmazta volna a LIMIT-et és a többit?
    Ki lehet belőle szedni valahogy csak a SELECT * FROM table értékét?

    Vagy mindenképp kell egy külön lekérdezés?
    Már erre esetre is megvan a tervem, csak hátha van erre valami egyszerűbb, jobban bevált módszer. Mert ha máshogy nem, akkor megcsinálom a külön lekérdezést, és csak akkor újra futtatom le újra (ezt a külön lekérdezést az eredeti, "szűretlen" méretről), ha a "table" értéke változik. A többi nem fog változni, a table viszont elég gyakran.

    Köszi!

    [ Szerkesztve ]

Új hozzászólás Aktív témák