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.
    • D
      domenico2014 User • ultima modifica di

      Estrazione nomi in maniera casuale senza ripetizione

      Buongiorno a tutti del forum, mi occorrerebbe un codice che estragga nomi a caso da una lista, e l'estrazione dei nomi deve essere univoca...per me andrebbe bene anche da database, file di testo, ecc....tipo come se fosse una tombola, però nomi e non numeri. Grazie in anticipo.

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • 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