Visualizzazione risultati 1 fino 8 di 8

Discussione: chiave secondaria autoincrement?

  1. #1
    Guest

    Unhappy chiave secondaria autoincrement?

    Ciao a tutti,
    ho due tabelle : utente e apparecchio,
    nella tabella apparecchio ho riportato la chiave primaria del utente, però quando faccio l'inserimento di un nuovo utente e di un nuovo apparecchio la chiave esterna riportata su apparecchio non mi si auto incrementa..
    se provo a metterci primary key, phpmyadmin mi dà errore..

    spero di essermi spiegato..
    grazie in anticipo :)

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Se la chiave è anche "AUTO_INCREMENT", quando inserisci un utente dovrebbe incrementarsi.
    Non capisco cosa centra l'inserimento di un nuovo apparecchio.

    Ciao!
    Ultima modifica di alemoppo : 26-06-2013 alle ore 12.49.21

  3. #3
    Guest

    Predefinito

    Forse mi sono spiegato male..
    Allora ho 2 tabelle : utente ed apparecchio.
    Quando arrivo a inserire un nuovo cliente nel db, devo inserire anche l'apparecchio (es: un notebook).
    utente ha come chiave primaria codu e apparecchio ha come chiave primaria codapp
    la relazione è di tipo 1:N
    Quindi su apparecchio porto come foreign key codu.
    il codu che porto da utente ad apparecchio quando inserisco un nuovo cliente non si autoincrementa.
    codu su utente si autoincrementa, codapp su apparecchio si incrementa ma codu su apparecchio no..
    Mi sono spiegato meglio? Ti prego dimmi di sì :D

  4. #4
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Il database da cosa dovrebbe desumere a quale riga di "cliente" va associato il nuovo "apparecchio"? Glielo devi passare tu.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da saitfainder Visualizza messaggio
    Il database da cosa dovrebbe desumere a quale riga di "cliente" va associato il nuovo "apparecchio"? Glielo devi passare tu.
    pensavo fosse automatico, nel senso che io passo i dati alla tabella utente ed alla tabella apparecchio nello stesso momento con lo stesso form..
    come posso risolvere?

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Puoi fare un unico form, ma devi usare 2 query differenti per inserire i dati.
    Quindi: inserisci un utente. Prelevi il suo codice (codu) che immagino sia l'id degli utenti (non lo consoci a priori, perché è autoincrement); puoi prelevarlo con la mysqli_insert_id() per mysqli o lastInsertId() per PDO.
    A questo punto, conosci codu e lo specifichi mentre inserisci l'apparecchio.

    Ciao!
    Ultima modifica di alemoppo : 26-06-2013 alle ore 14.30.50

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Puoi fare un unico form, ma devi usare 2 query differenti per inserire i dati.
    Quindi: inserisci un utente. Prelevi il suo codice (codu) che immagino sia l'id degli utenti (non lo consoci a priori, perché è autoincrement); puoi prelevarlo con la mysqli_insert_id() per mysqli o lastInsertId() per PDO.
    A questo punto, conosci codu e lo specifichi mentre inserisci l'apparecchio.

    Ciao!
    Per l'inserimento uso già due query.. comunque a quanto ho capito mysqli_insert_id() e lastInsertId() non sono da fare in php.. cioè io l'inserimento lo faccio dal sito non da phpmyadmin (mysqli)

  8. #8
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    phpMyAdmin è solo un'interfaccia per gestire il database quando fai delle operazioni manuali. Ma nella normale attività del tuo sito è PHP che comunica col database e quindi si usano quelle funzioni.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


Regole di scrittura

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