Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Generare numeri casuali che non siano mai uguali

    Hola, durante un processo di upload di file ho la necessità di dare ad essi un nome di 16 numeri random e vorrei far in modo che non ci sia il problema che vengano generati gli stessi numeri già esistenti (ad esempio genero 115531232123123 (non ho contato le cifre) e carico un' immagine con quel nome, dopo ne carico un' altra e devo controllare che la stringa di numeri generati non sia uguale a quella già esistente scritta prima). Ok, è quasi impropabile che 16 numeri random capitino uguali, ma sempre meglio prevenire..
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  2. #2
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    dovresti salvare questi numeri in un file di testo oppure in un db e controllare, a ogni nuova chiamata alla funzione ranom() se il numero generato sia o meno identico a uno già generato nelle chiamate precedenti....non vedo altra strada

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  3. #3
    Sì ma se anche fosse:

    Codice PHP:
    $generato random(1,15); // Esempio, non metto lo script per le 16 cifre
    if(mysql_num_rows(mysql_query("SELECT * FROM table WHERE generato='$generato'")) == 0) {
    // Le operazioni
    } else {
    $generato random(1,15); // Esempio, non metto lo script per le 16 cifre

    Così controlla solo 1 volta se già esiste, se ad esempio viene generato un altro numero diverso da prima che già esiste non rifà il controllo..
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    se non hai particolari esigenze potresti utilizzare data ora minuti secondi del momento dell'upload e saremmo a 14 cifre per le restanti 2 cifre puoi utilizzare un numero progressivo in caso di upload multipli altrimenti puoi utilizzare i centesimi di secondo.

  5. #5
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    Originariamente inviato da 0-c00l
    Sì ma se anche fosse:

    Codice PHP:
    $generato random(1,15); // Esempio, non metto lo script per le 16 cifre
    if(mysql_num_rows(mysql_query("SELECT * FROM table WHERE generato='$generato'")) == 0) {
    // Le operazioni
    } else {
    $generato random(1,15); // Esempio, non metto lo script per le 16 cifre

    Così controlla solo 1 volta se già esiste, se ad esempio viene generato un altro numero diverso da prima che già esiste non rifà il controllo..
    Dovresti usare una chiamata ricorsiva
    Codice PHP:
    function generaRandom(){
    $generato random(1,15); // Esempio, non metto lo script per le 16 cifre
    if(mysql_num_rows(mysql_query("SELECT * FROM table WHERE generato='$generato'")) == 0) {
    return 
    $generato;
    }
    return 
    generaRandom();


    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

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.