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

Discussione: Generare id univoco

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258

    Generare id univoco

    Salve, ho la necessità di generare un id univoco per concatenare più tabelle di un database mysql.

    Io ho fatto in questo modo:
    Codice PHP:
    $id_strao_unico time().microtime()*1000000
    Che dovrebbe creare un numero diverso in base della marcatura temporale e ai microsecondi trascorsi dall'ultimo secondo.

    Ma ho notato che non sempre viene generato. Io per salvare i dati utilizzo una chiamata ajax che richiama il file php dove c'è la variabile e poi insieme ad altri dati ricevuti in post li salvo nel database.

    Dove sbaglio secondo voi ? c'è un modo migliore da utilizzare?

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258
    Si ho visto, ma il mio dubbio è sulla mia applicazione errata. Faccio un esempio di come ho strutturato il file:

    Codice PHP:
    <?php$dato1 trim($_POST['dato1']);$dato2 trim($_POST['dato2']);$dato3 trim($_POST['dato3']);// Genera sempre un numero diverso in base della marcatura temporale e ai microsecondi trascorsi dall'ultimo secondo$id_strao_unico = time().microtime()*1000000;
    //1 query d'inserimento//  INZIO STRAORDINARIO PROGRAMMATO
    if ($condizione1 === "xx") {    //2 query d'inserimento}if ($condizione2 === "yy") {    //3 query d'inserimento}
    ?>
    Ho notato che alcune volte il campo rimane vuoto sul db

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Ti posso chiedere lo scopo ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258
    Allora io salvo dei dati nella tabellaA poi se nei dati è presente un dato vado a salvare altri dati nella tabellaB ed eventualmente tabellaC.

    Per collegare le tre tabelle ho pensato di creare un id univo in comune per tutti e tre le tabelle. Cosi quando vado a richiamare i dati nella tabella A richiamo se presenti anche quelli nella tabella B e C

    Non so se sia il modo migliore ma, funziona correttamente per il mio scopo. Salvo che a volte non viene salvato l'id univoco e quindi i dati non sono collegati tra di loro. Non so se mi sono spiegato.

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Se la tua tabella A ha un id univoco di per sè lo puoi usare per le altre tabelle.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258
    si ha un id autoincremental. Dovrei salvare i dati nella tabella A poi fare una select del dato appena inserito recuperando l'id e poi inserire gli eventuali dati nelle tabelle b e c ?

  8. #8
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Vedi tu. Ma mi sembra assai più semplice.

    Se usi le funzioni mysqli puoi ricavare l'ultimo id inserito subito dopo l'inserimento grazie a mysqli_insert_id($link). Attenzione si tratta dell'ultimo id assegnato dall'ultima tabella usata per un insert.
    Con PDO c'è lastInsertId. Con gli stessi limiti immagino
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  9. #9
    Ma non era meglio impostare una relazione tra le tabelle con chiavi esterne?

  10. #10
    Quote Originariamente inviata da bauleviaggiante Visualizza il messaggio
    Ma non era meglio impostare una relazione tra le tabelle con chiavi esterne?
    Ho visto che Badaze ti propone la stessa cosa, mi ero fermato al post successivo alla richiesta di scopo

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.