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

    Funzione rand con variabili per max range

    Salve a tutti,
    dopo aver spulciato internet quasi ovunque non sono riuscito a capire se la funzione rand di php supporta le variabili o meno per definire il range.

    In alternativa qualcuno può aiutarmi a capire come risolvere questo problema?

    Ho un db con x record che possono variare. I record hanno 3 campi: id, stringa e approvata.

    Ho una funzione che mi prende una stringa solo se approvata da un record di questo database e me la stampa a video.

    Vorrei che l'id della stringa da prelevare sia un numero a caso tra 1 ed il numero massimo di record esistenti nel database.

    In pratica una specie di rand (1, max_record)

    ho provato ad inserire una cosa del genere ma non funziona... se metto un numero a caso, senza limitarlo, rand genera numeri fuori dal database e mi compare la scritta (che ho inserito in caso non ci siano presenti stringhe approvate) che non sono presenti stringhe disponibili.


    C'è in php una funzione che preso un numero a caso con rand () poi lo divida o faccia altro affinché non superi il range che deve andare a verificare di volta in volta nel database? (all'inizio della pagina c'è la funzione SELECT COUNT per inserire in una variabile quanti record sono presenti nella tabella del db in quel momento).

    Grazie per l'aiuto e spero di essere stato chiaro

  2. #2
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    ehm.. penso che non hai spulciato tanto bene la rete visto che è l'ultimo esempio (il primo in ordine di lettura) insertito sulla pagina della funzione rand() di PHP...

    Codice PHP:
    <?php
    $query 
    "SELECT `id` FROM [TABLE]";
    $result mysql_query($query$link);
    $num mysql_num_rows($result);
    if (
    $num 0) {
        
    // Array the ID's...
        
    $id_array = array();
        while (
    $row mysql_fetch_assoc($result)) {
            
    $id_array []=$row["id"];
        }
        
    $query "SELECT * FROM [TABLE] WHERE `id`=".$id_array[rand(0, (count($id_array)-1))];
        
    $result mysql_query($query$link);
        
    $row mysql_fetch_assoc($result);
        
    // ...
    }
    ?>
    oppure estrai random un record direttamente da mysql..
    Codice PHP:
    SELECT ... FROM my_table ORDER BY RAND() LIMIT 1 
    eXvision

  3. #3
    Grazie mille... sono stato 36 ore non stop a sviluppare questa applicazione... e questa cosa mi era sfuggita

    Grazie mille.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.