Rezultate 1 la 5 din 5

Subiect: Afisarea random 'n' inregistrari

  1. #1
    Avatarul lui tiberiur
    tiberiur este deconectat Membru SeoPedia
    Reputatie:
    29
    Data înscrierii
    26th September 2010
    Locaţie
    Cluj
    Vârstă
    32
    Posturi
    455
    Putere Rep
    29


    Implicit Afisarea random 'n' inregistrari

    Cum as putea sa afisez random un numar de 'n' inregistrari dintr-o tabela (cred ca asa ii zice).
    Mi-am prins urechile si am gasit urmatoarea secventa de cod care functioneaza intr-un script, dar unde vreau eu sa o implementez nu mai vrea.

    Cod:
    <?php $liste->[tabela](10); ?>
    Si un link de documentare ar fi apreciat.
    .

  2. #2
    Avatarul lui -Rares-
    -Rares- este deconectat Ambasador
    Reputatie:
    50
    Data înscrierii
    14th May 2009
    Locaţie
    Bucuresti
    Vârstă
    38
    Posturi
    1.620
    Putere Rep
    50


    1 out of 1 members found this post helpful.

  3. #3
    Avatarul lui danP
    danP este deconectat Membru SeoPedia
    Reputatie:
    28
    Data înscrierii
    19th October 2010
    Locaţie
    RO
    Vârstă
    31
    Posturi
    458
    Putere Rep
    28


    1 out of 1 members found this post helpful.

    Implicit

    Cum a zis Rares, sau, daca ai o coloana ce retine id-uri de exemplu, cu auto increment, poti sa iei ultima valoare (cea mai mare) si sa dai $x=rand(0,$valoare).

  4. #4
    Avatarul lui webSorin
    webSorin este deconectat Membru SeoPedia
    Reputatie:
    25
    Data înscrierii
    21st April 2011
    Locaţie
    Bucuresti
    Vârstă
    44
    Posturi
    41
    Putere Rep
    25


    2 out of 2 members found this post helpful.

    Implicit

    Desi mai mult ca sigur ai rezolvat problema, scriu doar ca sa ramana scris si pentru altii:

    nu folositi ORDER BY rand() pe tabele cu un nr. mare de inregistrari. Nr. mare este definit de server load-ul in momentul in care se face query-ul.

    Deoarece rand() intai scaneaza toata tabela si apoi face "accesarea" va dati seama ce inseamna asta la interogarea unei tabele de + 1000 reg care serverste o pagina accesata de XXX internauti!

    Mai bine faci doua interogari separate, una in care scoti limitat toate id-urile din tabela si le bagi intr-un array (numai valorile), si, a doua in care poti face un rand() in php precum a scris mai sus lumpy

    Daca interogarea se face pe o tabela a caror inregistrari sunt user generated content, in anumite cazuri este suficient un shuffle pe array-ul cu pricina!

    Baseline: order by rand() este extrem de greoi in executie.

  5. #5
    Avatarul lui -Rares-
    -Rares- este deconectat Ambasador
    Reputatie:
    50
    Data înscrierii
    14th May 2009
    Locaţie
    Bucuresti
    Vârstă
    38
    Posturi
    1.620
    Putere Rep
    50


    Implicit

    webSorin, corect, i-am prezentat solutia cea mai simpla si la indemana pt orice incepator. In linkul al treilea postat de mine, avea insa 4 solutii la aceasta problema, fiecare explicata cu avantaje sau dezavantaje

Informații subiect

Utilizatori care navighează în acest subiect

Momentan este/sunt 1 utilizator(i) care navighează în acest subiect. (0 membrii și 1 vizitatori)

Thread-uri Similare

  1. Răspunsuri: 21
    Ultimul Post: 2nd February 2011, 14:09
  2. PHP/MySQL afisare inregistrari care incep cu litera X
    De Iulian în forumul Server side
    Răspunsuri: 2
    Ultimul Post: 19th July 2010, 07:04
  3. Random from sql: cum sa il fac sa se incarce mai repede
    De evolution în forumul Server side
    Răspunsuri: 21
    Ultimul Post: 4th August 2008, 23:42
  4. vand baza de date lyrics peste 270.000 inregistrari
    De anuntul în forumul Continut web
    Răspunsuri: 11
    Ultimul Post: 25th September 2007, 09:19
  5. random links
    De Mascka în forumul Discutii generale privind optimizarea si motoarele de cautare
    Răspunsuri: 0
    Ultimul Post: 22nd July 2007, 14:38

Permisiuni postare

  • Nu puteţi posta subiecte noi.
  • Nu puteţi răspunde la subiecte
  • Nu puteţi adăuga ataşamente
  • Nu puteţi modifica posturile proprii
  •