Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Estrazione nomi in maniera casuale senza ripetizione
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • P
      pietror User Attivo • ultima modifica di

      Ciao
      potresti creare una matrice n x 2
      dando una corrispondenza univoca nome e numero
      Es:
      0 Marco
      1 Antonio
      2 Giovanni
      ....
      Estrarre i numeri con un rand ed in base al numero estratto leggere il nome

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • D
        domenico2014 User • ultima modifica di

        Ciao PietroR....grazie per la dritta, ho creato una tabella mysql con id e nome....ho utilizzato questa query: $query = "SELECT * FROM tbfc ORDER BY RAND() LIMIT 0,1";
        l'estrazione avviene in maniera casuale come desidero io però mi ripete numeri gia' usciti in precedenza...qualche suggerimento? grazie.

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • P
          pietror User Attivo • ultima modifica di

          Nel senso che tutte le volte ti ri-estrae gli stessi numeri?
          potresti in alternativa fare una select secca in cui gli passi l'id estratto a caso da un array in php con l'array_rand()

          http://php.net/manual/en/function.array-rand.php

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • D
            domenico2014 User • ultima modifica di

            si si pietroR....ri-estrae gli stessi numeri...ho visitato il tuo link...purtroppo non va...scusami non voglio farti perdere tempo.

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • P
              pietror User Attivo • ultima modifica di

              Domenico2014 figurati!
              cosa non funziona? l'utilizzo della funzione o la pagina?
              Quella ho provato a cliccarla ora e funziona (comunque è la guida alla funzione array_rand() )

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • D
                domenico2014 User • ultima modifica di

                Ciao PietroR grazie per le risposte...il link da te postato funziona bene, solo che l'estrazione avviene anche per i nomi gia' estratti...invece a me occorre estrazioni univoche, senza ripetizioni.

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • P
                  pietror User Attivo • ultima modifica di

                  Potresti estrarre i valori da un array di supporto che viene decurtato ogni volta del valore estratto.

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • M
                    miwebdesign Moderatore • ultima modifica di

                    Se ho capito bene:

                    Text-Mode:

                    • Crei due array, uno conterrà i nomi esistenti e l'altro i nomi scelti (senza ripetizioni)
                    • Cicli i nomi dal DB, controlli preventivamente se è già tra gli esistenti o meno ed includi il valore nell'array adatto
                    • Conti i valori dentro l'array filtrato e per ogni valore ne stampi uno in posizione casuale

                    Code-Mode (commentato):

                    [PHP]
                    <?php
                    $mysqli = new mysqli("host","nomeutente","password","database") //ti connetti al DB tramite mysqli

                    $exi = []; // creo array nomi esistenti

                    $notexi = []; // creo array nomi scelti

                    $query = $mysqli->query("SELECT nome from nomi"); // seleziono tutti i nomi

                    while($row = $query->fetch_row()){ // ciclo tutti i nomi

                    foreach($exi as $nome){ // per ogni nome esistente
                    
                        if($row[1]!=$nome){ // se non è già uscito 
                    
                                array_push($notexi,$row[1]); //lo metto negli scelti
                    
                        }else{ // se è già uscito
                    
                                array_push($exi,$row[1]); //lo metto negli esistenti
                    
                        }
                    
                    }
                    

                    }

                    $tot = count($notexi); // conto i nomi puliti e filtrati

                    for($i=0;$i<=$tot;$i++){ // per ogni nome fino alla fine della condizione

                    $r = rand(0,$tot); //ne piglio uno a caso tra il primo e l'ultimo
                    
                    echo $notexi; // lo stampo o ci faccio quello che voglio
                    

                    }

                    ?>

                    [/PHP]

                    Scusa ma non ho il tempo di testarlo, fammi sapere se và 😉

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • giorgiotave
                      giorgiotave Community Manager • ultima modifica di

                      Qualcuno ha una soluzione valida per oggi?

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        shazarak 1 Risposta Ultima Risposta
                      • shazarak
                        shazarak User Attivo • ultima modifica di @giorgiotave

                        @giorgiotave
                        qua estrae 6 numeri per la lotteria
                        https://codereview.stackexchange.com/questions/124223/generate-6-random-numbers-for-lottery-in-php
                        ma il concetto è piu o meno lo stesso fatto pero con un array di stringhe

                        1 Miglior Risposta 1 Ringrazia Cita Rispondi

                          giorgiotave 1 Risposta Ultima Risposta
                        • giorgiotave
                          giorgiotave Community Manager • ultima modifica di @shazarak

                          @shazarak ottimo

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          Caricamento altri post
                          Rispondi
                          • Topic risposta
                          Effettua l'accesso per rispondere
                          • Da Vecchi a Nuovi
                          • Da Nuovi a Vecchi
                          • Più Voti