Visualizzazione dei risultati da 1 a 7 su 7

Discussione: variabili random

  1. #1

    variabili random

    ho 4 variabili il cui contenuto voglio farlo visualizzare sempre in ordine casuale nella pagina,
    tipo a, b, c, d e al caricamento della pagina mi compare c, a, b, d e cosi via... ma non so come strutturare l'algoritmo.
    non so se sono stato chiaro ma non so come spiegarlo altrimenti...

  2. #2
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Di che tipo di dati si tratta? Se vengono prelevati da un database puoi aggiungere, alla fine della query e dopo aver selezionato il campo interessato, ... ORDER BY RAND() LIMIT 4. Se si tratta di un'array potresti provare a mettere su qualcosa con array_rand(). Se si tratta di singole variabili, tornerebbe comunque utile il discorso dell'array casuale.

  3. #3
    ma il problema che mi pongo è come fare a non estrarre 2 o piu volte lo stesso elemento se uso ad esempio la funzione array_rand

    cmq i campi vengono presi da db mysql ma non si trovano in record diversi ma bensi nello stesso record

  4. #4
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Visto che i dati li prelevi dal database il mio consiglio è quello di lasciar perder array_rand() e sfruttare la funzione RAND() di MySQL, recuperando i 4 risultati (senza duplicati, se ricordo bene) direttamente con la sola query:

    codice:
    SELECT campo FROM tabella ORDER BY RAND() LIMIT 4
    ( sempre che abbia inteso bene quello a cui ti riferivi con "record"... )

  5. #5
    intendevo che i campi stanno nella stessa riga, quindi la mia query è:

    SELECT campo1, campo2, campo3, campo4 FROM tabella WHERE id='$id'

  6. #6
    ho fatto qualcosa del genere:

    Codice PHP:

    $campo
    [0] = "aaa";
    $campo[1] = "bbb";
    $campo[2] = "ccc";
    $campo[3] = "ddd";


    $count_array_campo count($campo);
    $count_array_campo $count_array_campo 1;


        for(
    $i=0$i<=$count_array_campo$i++)
        {
        
        
    $num_random rand(03);
        
            
    $array_rand[] = $num_random;
        
        
    $count_array_rand count($array_rand);
        
    $count_array_rand $count_array_rand 1;
                        
                        for(
    $x=0$x<=$count_array_rand$x++)
                        {    

                    

                            if(
    $array_rand[$x]==$num_random)
                        
                            {
                            
                                
    $result[$i] = $campo[$num_random];        
            
                            }
                            
                            
                        }

    }




    echo
    "


    $result[0]



    $result[1]



    $result[2]



    $result[3]
    "



    l'array rand serve a contenere i numeri gia estratti per poi fare un controllo e non ripescare di nuovo lo stesso numero...solo che non è ancora corretto perche a volte restituisce dei campi uguali.

  7. #7
    ok ho risolto con array_rand() in maniera semplicissima, a chi puo interessare ecco il codice:

    $campo[0] = "aaa";
    $campo[1] = "bbb";
    $campo[2] = "ccc";
    $campo[3] = "ddd";



    $random_array = array_rand($campo, 4);

    echo $campo[$random_array[0]];
    echo"

    ";

    echo $campo[$random_array[1]];
    echo"

    ";

    echo $campo[$random_array[2]];
    echo"

    ";

    echo $campo[$random_array[3]];
    echo"

    <hr />";

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.