Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    34

    [PHP - MySQL] Inserimento con foreign key

    Good evening,
    sto facendo un ecommerce per un esame universitario e mi trovo a dover gestire gli utenti.
    Per alleggerire le query durante il login ecc, ho deciso di lasciare separati i dati di login (id, user, psw) da quelli personali (id, nome, cognome, ecc...).
    i campi id, ovviamente, sono legati da una foreign key (per il cascade).
    il problema si pone durante l'inserimento dei dati:
    dovendo fare un inserimento alla volta (non mi risulta che in un solo insert into si possa lavorare su due tabelle), durante l'inserimento di una, mi da errore perchè nn c'è la corrispondente foreign key!
    come si può fare? vorrei evitare di rimuovere il vincolo anche perchè al professore piace -.-'

    Spero di essermi spiegato!

    Grazie,
    Luca

  2. #2
    Dopo la prima insert puoi recuperare l'ultimo id generato utilizzando mysql_insert_id() ed effettuare la seconda insert utilizzando quest'ultimo id
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    34
    nn è questione di id, quello è facile recuperarlo anche con una select. quello che intendo io è che proprio nn mi fa la prima insert perchè dice che nn è verificata l'integrità (giustamente, dato che se faccio la prima insert inserisco i dati nella prima tabella, ma la seconda rimane vuota).

    Grazie,
    Luca

  4. #4
    Originariamente inviato da drako89
    nn è questione di id, quello è facile recuperarlo anche con una select
    E come faresti?


    Originariamente inviato da drako89
    quello che intendo io è che proprio nn mi fa la prima insert perchè dice che nn è verificata l'integrità (giustamente, dato che se faccio la prima insert inserisco i dati nella prima tabella, ma la seconda rimane vuota).

    Grazie,
    Luca
    Allora devi invertire le insert dato che devi effettuare prima quella alla quale poi la foreign key fa riferimento.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    34
    Originariamente inviato da satifal
    E come faresti?
    tramite una select con limit 1 order by desc! (l'ho provato prima e funziona).
    Cmq ora ho utilizzato il mysql_insert_id() che è sicuramente più professionale

    Allora devi invertire le insert dato che devi effettuare prima quella alla quale poi la foreign key fa riferimento.
    ehm, per quanto riguarda questo, avevo fatto la genialata di mettere la foreign key in entrambi i versi, ora che mi hai detto sono andato a controllare e ho messo a senso unico!!
    ti ringrazio davvero molto,

    Luca

  6. #6
    Originariamente inviato da drako89
    tramite una select con limit 1 order by desc! (l'ho provato prima e funziona).
    E chi ti assicura che l'ultimo id inserito sia quello più alto? Di solito è così, ma il contatore degli id auto_increment può anche essere manipolato ed in quel caso potresti trovarti in difficoltà.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    34
    sinceramente è un'eventualità che nn avevo preso (nè ho preso adesso ) in considerazione!
    cmq ho preferito fare con mysql_insert_id... già che c'è sfruttiamolo!

    Grazie ancora,
    Luca

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.