Visualizzazione risultati 1 fino 7 di 7

Discussione: [MySQL/PHP] Numeri che non coincidono

  1. #1
    Guest

    Predefinito [MySQL/PHP] Numeri che non coincidono

    Ciao a tutti
    oggi ho ricontrollato la registrazione su un sito che ho creato io e mi sono chiesto una cosa:
    io vorrei fare un rand di due numeri che mettiamo che siano numero a e numero b e di conseguenza aggiungerli sul db ma se esiste gia una combinazione uguale vorrei ripetere il rand e cosi all'infinito finche la combinazione ab non sia gia stata assegnata ad un utente
    es.
    io mi registro e il rand da come $a = "54" $b = "89" a questo punto lo script controlla che nessun utente abbia gia la combinazione $a = "54" $b = "89" se un utente a gia questa combinazione ripete il rand e il controllo se no li inserisce nel db
    questa cosa è fattibile?
    grazie

  2. #2
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    Tutto è fattibile.
    Ma il numero random a cosa ti serve? come identificativo univoco per quell'utente o semplicemente numero?
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da binarysun Visualizza messaggio
    Tutto è fattibile.
    Ma il numero random a cosa ti serve? come identificativo univoco per quell'utente o semplicemente numero?
    soltanto da numero
    nn è che riuscite a darmi un codice di esempio?
    grazie mille

  4. #4
    Guest

    Predefinito

    una cosa del genere...
    Codice PHP:
    <?php

    $a
    = 0;
    $b = 0;

    do {
    $a = rand(0,99);
    $b = rand(0,99);
    $q = "SELECT * FROM table WHERE a=".$a." AND b=".$b;
    }while(
    myql_num_rows(mysql_query($q,$db)));

    $q = "INSERT INTO table(a,b) VALUES(".$a.",".$b.")";

    ?>

  5. #5
    Guest

    Predefinito

    grazie stoner
    solo una cosa se non è di disturbo:
    mi potresti spiegare solo un po il codice? se non hai voglia non fa niente
    grazie mille

  6. #6
    Guest

    Predefinito

    figurati. E' semplice.
    All'interno del ciclo vengono generati due numeri, a e b. Viene quindi creata una stringa che contiene la query da eseguire per vedere se esistono degli utenti che hanno già quei due numeri.
    La condizione del do-while non fa altro che eseguire la query e vedere il numero di righe che ha selezionato dalla tabella. Se c'è un utente con quei numeri la funzione mysql_num_rows (che li ho scritto anche male (l'ho fatto al volo)) restituisce 1, e quindi il ciclo viene ripetuto perchè la condizione è vera (genera quindi due nuovi numeri e viene ricreata la query). Nel momento in cui la funzione mysql_num_rows restituisce 0, vuol dire che non esiste un utente che ha quei numeri. Di conseguenza esce dal ciclo. Fuori dal ciclo viene eseguita la query per salavare all'interno del db i due numeri. (essendo rimasti salvati all'interno delle variabili dopo il termine del ciclo).

  7. #7
    Guest

    Predefinito

    sei grande stoner
    grazie mille anche per la ottima spiegazione

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •