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

    selezionare 20 righe random senza ripetizione

    salve a tutti, ho un db my sql dal quale devo estrarre 20 record senza ripetizione. Per fare questo io conto il numero di righe con php (mysql_num_rows() ) e poi utilizzo la funzione rand() del php per creare un vettore di 'id' (con un ciclo che controlla che i numeri generati random non si ripetino mai) e poi eseguo una query del tipo "SELECT * FROM tabella WHERE id ='$vett[1]' AND id='$vett[2]'... ecc ". Il mio sistema funziona ma è piuttosto lento e macchinoso. Sarebbe bello poter far gestire direttamente al DB l'estrazione random delle righe ma non so se si puo' fare. Ho cercato sul sito di mysql ma non ho trovato niente che faccia al caso mio apparte la funzione COUNT(*) che dovrebbe contare i records ma che non riesco ad usare

    Nessuno mi sa dare una mano?

    Ciao e grazie anticipatamente

  2. #2
    Non va bene order by e limit?

    SELECT * FROM TABELLA
    ORDER BY RAND()
    LIMIT 20

    Dovrebbe estrarre i primi 20 records con ordinamento casuale, quindi senza ripetizioni.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Perfetto funge alla grande? Grazie 100000000000000000

    Non è che sai anche come si usa il COUNT() per contare le righe invece del mysql_num_rows?

    sul manuale ho trovato

    SELECT COUNT(*) FROM tabella

    ma quando faccio eseguire la queri dove lo dovrebbe mettere il risultato? io faccio

    $sql="SELECT COUNT(*) FROM tabella";
    $dati=mysql_query($sql);
    $ris=mysql_fetch_array($dati);

    e il numero delle righe dove sta?

    Grazie cmq sei stato davvero di grande aiuto

  4. #4
    codice:
    $sql="SELECT COUNT(*) FROM tabella"; 
    $dati=mysql_query($sql); 
    $ris=mysql_fetch_array($dati); 
    echo $num = $ris[0];

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.