Visualizzazione dei risultati da 1 a 8 su 8

Discussione: ORDER BY RAND

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    28

    ORDER BY RAND

    ciao sto facendo una pagina che visualizza un elemento preso random da db mysql e di solito con l'espressione

    "SELECT * FROM tabella ORDER BY RAND(NOW()) LIMIT 1";

    mi funziona. Sul server dove dovrebbe girare invece non va. Potrebbero essere delle impostazioni del server che impediscono di usare questo tipo di istruzione? O forse la versione di mysql usata? ciao buona giornata.

    Sia in locale che su di un altro server funziona...

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Ma ti restituisce qualche errore?

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    28
    No, mi fa visualizzare il primo record del db

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Prova a fare una cosa del genere.
    Generati un numero casuale in php dove $numeroMax è il numero di record presenti nel tuo db.

    $i = mt_rand(0, $numeroMax);
    $query = "SELECT * FROM tabella LIMIT $i,1";

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    28
    sei un grande!

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da TAKESHI
    sei un grande!


    Credo che sia un problema dell'algoritmo di generazione di numeri casuali di mysql che a volte "si fissa" su un valore. L'algoritmo mt di php è molto più valido.

  7. #7
    Altrimenti devi usare una

    ORDER BY REVERSE(RAND())

    La rand restituisce un numero tra 0 ed 1 . In quel server si vede che controllava solo i decimali interi quindi sempre 0.... in questo modo inverti la stringa e ottieni un valore realmente random

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    28
    E' vero. anche cosi funziona. grazie!

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.