Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: numero casuale

  1. #1

    numero casuale

    ciao a tutti, fare l'UPDATE di una colonna di una tabella,inserendo numeri casuali ma che non si ripetano,ho visto molti esempio ma non sono riuscito a farne andare nemmeno uno,qualcuno mi può aiutare?

  2. #2
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Bahh!! un numero casuale per sua definizione si puo ripetere appunto perché è casuale.

    Dipende dal BD che usi e dalla applicazione,
    solitamente queste cose si fanno a lato applicazione

    La soluzione più complicata è
    - calcolare un random
    - verificare se gia esiste
    --- se non esiste inserirlo
    --- se esiste ricomincia a ricalcolarsi un altro random

    ma ci soni anche delle soluzioni più banali,
    se il tuo casuale potrebbe essere ad esempio crescente e regolare allora ti basta un campo autioncrementale.

    oppure alcuni DB ti offrono gia la possibilità di inserire una Key univoca random

    Che DB usi ??
    quale applicazione ??

    .

  3. #3
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    se usi MySql come DB e PHP come linguaggio di programmazione, puoi fare una cosa del genere
    Codice PHP:
    $rand_gen "SELECT (FLOOR(10000 + RAND() * 99999)) as rInt FROM tabella WHERE 'rInt' NOT IN (SELECT randomInt FROM tabella LIMIT 1)"
    $ex_rand_gen mysqli_query($con$rand_gen) or die ("qualcosa è andato storto: " mysqli_error());
    $rand_val mysqli_fetch_array($ex_rand_gen);
    $rand_upd "UPDATE tabella SET randomInt = {$rand_val['randomInt']} WHERE id = idDelRecordCheVuoiModificare";
    $ex_rand_upd =  mysqli_query($con$rand_ins) or die ("qualcosa è andato storto nell'update: " mysqli_error()); 
    PS: questo ti genera sempre un numero di 5 cifre
    Ultima modifica di clasku; 09-11-2014 a 12:14

  4. #4
    in effetti non mi aspettavo tutto questo "casino"... forse faccio prima a farvi vedere il link e spiegare meglio ciò che vorrei ottenere : http://cedri.altervista.org/test.php

    ho 80 domande (inserite in un DB MySQL)
    i radio button sono generati da un ciclo WHILE e i relativi name sono formati da "risp"+ l'id della domanda quindi ottengo RISP1...RISP2...RISP3 ECC....

    io avrei bisogno in pratica di disporre le domande in ordine casuale ma allo stesso tempo ho bisogno di lasciare in ordine crescente i name dei radio (da risp1 a risp80)

  5. #5
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    tu vuoi ottenere una cosa tipo questa?
    codice:
    domanda 5 - risp5 value=0, risp5 value=1 ecc
    domanda 80 - risp80 value=0, risp80 value=1 ecc
    domanda 1 - risp1 value=0, risp1 value=1 ecc
    oppure tipo questa?
    codice:
    domanda 5 - risp1 value=0, risp1 value=1 ecc
    domanda 80 - risp2 value=0, risp2 value=1 ecc
    domanda 1 - risp3 value=0, risp3 value=1 ecc

  6. #6
    la seconda !

  7. #7
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    e come correli le risposte alle domande? o non ti interessa e ti servono solo i valori delle risposte?

    Comunque, lasciando perdere la parte di display della pagina (che credo vada in altra sezione), basta che nella tua query con le domande da presentare fai
    codice:
    SELECT id, domanda FROM tabDomande ORDER BY RAND();
    otterrai un ordine casuale delle domande
    Ultima modifica di clasku; 09-11-2014 a 13:55

  8. #8
    per correlare le domande,nella tabella ho inserito anche le categorie,quindi le risposte sono poi raggruppate in base al genere,a me servono solo i valori,
    facendo order by rand() cosa che ho già provato ,ogni volta che si ricarica la pagina l'ordine casuale cambia,e io ho bisogno che i name delle risposte restino in ordine crescente in quanto faccio un controllo in jquery

  9. #9
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    io ho capito che a te serve mantenere le option in ordine progressivo e le domande in ordine random
    se ho capito bene, vuoi variare solo i dati della colonna domande e lasciare gli altri fissi
    io farei così, con il terzo parametro della funzione che può essere anche l'id della domanda (per avere le risposte correlate)
    Codice PHP:
    function printOption($s$e$r) {
        
    // $s = valore di partenza per i radio
        // $e = numero di radio
        // $r = numero di riga a cui collegare i radio
        
    for($v $s$v < ($s $e); $v++) {
            echo 
    "\n\t<input type=\"radio\" value=\"$v\" name=\"risp_$r\">";
        }
    }


    $query "SELECT domanda FROM tabDomande ORDER BY RAND()";
    $ex_query mysqli_query($con$query) or die ("qualcosa non ha funzionato: " .mysqli_error($con));


    echo 
    "domande\n";
    echo 
    "<form action='go.php' method=POST>";
    $a 1// contatore per le righe
    while($domande mysqli_fetch_array($ex_query)) {
        echo 
    "\n<p>" $domande['domanda'];
        
    printOption(05$a);
        echo 
    "</p>";
        
    $a++;

    non ho capito la questione del ricaricare la pagina e di jQuery
    Ultima modifica di clasku; 09-11-2014 a 21:58

  10. #10
    grazie per la risposta,oggi provo il codice che mi hai postato (rispondo solo ora perchè questi 4 giorni ero via) la questione del ricaricare era riferita al ORDER BY RAND() ovvero ogni volta che ricarico la pagina (F5) la query viene rieseguita,e quindi l'ordine casuale cambia

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.