Visualizzazione dei risultati da 1 a 2 su 2

Discussione: select random

  1. #1

    select random

    Ciao a tutti,
    probabilmente sto chiedendo una cazzata.

    Devo fare una select in un db nella tabella relativa ai prodotti, filtrando quelli che hanno il flag "in_hp" attivando quindi quelli che vanno visualizzati in home page del sito.

    A questo punto in home page posso visualizzare solo 5 prodotti e, nel caso in cui il recordset mi dia + di 5 prod, vorrei fare in modo che vengano visualizzati in modo random a ciscuna visita.

    In pratica faccio:

    select TOP 5 * from tab_prodotti where hp='yes' order by ???

    Oltre all'ordinazione ASC e DESC c'e' anche la possibilità di pescare i TOP 5 random nel DB in modo che non vengano visualizzati sempre gli stessi...

    Ciao e grazie a tutti.


  2. #2
    potresti procedere come segue:
    select count(*) as totale from tabella where hp='yes'
    ...
    ...
    attivi un ciclo for da 1 a 5 e dentro
    una funzione che ti estragga un numero casuale compreso tra 1 e TOTALE(chiaramente ripetendo l'estrazione se il risultato è uguale ad uno dei precedenti) e mettendo tutto in un array 1 to 5
    alla fine avrai un array con 5 diversi numeri
    poi
    select * from tabella where hp='yes'

    scorri tutto il recordset ed ad ogni lettura incrementi un contatore, se il contatore è uguale ad uno degli elementi dell'array lo visualizzi, altrimenti no

    chiaramente se nel tuo recordset ci sono tanti record la procedura può rivelarsi pesante

    SB

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.