Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Query ad una tabella con RAND

    Viasualizza i dati di una tabella mysql con una query di questo tipo:
    SQL = "SELECT * FROM "
    SQL = SQL & " TBL_QUOTE "
    SQL = SQL & " WHERE RATING <> '' "
    SQL = SQL & " ORDER BY RAND()"

    Adesso ho la necessita di impaginare 20 record per pagina, qualcuno può aiutarmi??

    Grazie a tutti voi

    Carlo
    http://www.veramentegratis.it Community in cui potrete trovare o segnalare tutto ciò che è "Veramente Gratis
    http://www.websemplice.net Web hosting & Template free

  2. #2
    rand() può prendere un parametro, che è il seed della funzione di generazione di numeri casuali.
    Se generi questo numero via codice, e lo passi ogni volta che cambi pagina alla query, viene mantenuto l'ordine. Memorizza questo seed in qualche modo (tipo in sessione).

    codice:
    seed = genera_numero_casuale()    ' lo genera o lo carica dalla sessione
    
    SQL = "SELECT * FROM "
    SQL = SQL & " TBL_QUOTE "
    SQL = SQL & " WHERE RATING <> '' "
    SQL = SQL & " ORDER BY RAND(" & seed & ")"
    SQL = SQL & " LIMIT 0, 20"
    poi sostituisci 0, 20 man mano che cambi pagina

  3. #3
    Se funziona, sei io fratello del SIGNORE
    http://www.veramentegratis.it Community in cui potrete trovare o segnalare tutto ciò che è "Veramente Gratis
    http://www.websemplice.net Web hosting & Template free

  4. #4

    l'ho sicuramente usato in passato, stai certo che funziona
    anche se è sconsigliato utilizzarlo se la tua tabella ha più di, diciamo, 500 righe...

  5. #5
    Che tipo di problema potrebbe generare?

    Rallentamento?
    http://www.veramentegratis.it Community in cui potrete trovare o segnalare tutto ciò che è "Veramente Gratis
    http://www.websemplice.net Web hosting & Template free

  6. #6
    putroppo si. Ad esempio leggendo qui:

    http://jan.kneschke.de/projects/mysql/order-by-rand/

    puoi vedere il confronto tra order by rand e la soluzione che propone l'autore nell'ultimo paragrafo "Performance".
    Il problema è che non sono ancora riuscito a trovare un'alternativa valida per la paginazione dei risultati con ordinamento casuale (almeno rimanendo soltanto su db).

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.