Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    48

    Login e mofifica dati db

    Ciao, ho realizzato un login form e un altro form che registra alcuni dati che vengono inseriti nel database. Il problema è come far MODIFICARE tali dati una volta che sono stati inseriti dall'utente loggato (i valori del db quindi devono essere modificati solo da lui e nessun altro)
    Mi date una mano? Grazie 1000

  2. #2
    Non so come hai progettato il db, ma ogni utente dovrebbe avere una chiave univoca (ad es. un numero). Ti basterebbe, una volta che l'utente ha fatto il login eseguire una query di tipo UPDATE.... che modifichi solo l'utente con quel numero/nome/codice..

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    48
    forse nn ho capito io
    VOlevo dire che l'utente si logga e poi può modficare dei dati che aveva inserito in un altro form (separato dal login); infatti la tabella del login è separata da quella dell'altro form.

  4. #4
    Non ho capito come hai fatto le tabelle...dovresti avere una cosa del genere:

    Utenti:
    ID_utente,username,password

    Messaggi:
    ID_messaggio,ID_utente,testo

    a questo punto basta fare l'update sull'altra tabella, no?

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    48
    la prima tabella è
    ID, nome, passwd
    la seconda è
    titolo descrizione indirizzo

    Non capisco xò come dopo che l'utente ha fatto l'accesso possa modifcare solo alcni valori della seconda tabella e non tutti in un altro form. aiutiami ti prego
    grassie

  6. #6
    Il problema è proprio sulla seconda tabella, devi aggiungere un campo: il campo ID

    Ad esempio se hai in utenti

    ID nome pass
    1 Mario xx
    2 Gianni yy

    In messagi devi avere

    titolo descri indiriz ID
    aaa bbb cccc 1
    ffff ccc dddd 2
    www ddd aaaa 1

    in questo modo sai che l'utente Mario (ID 1) ha scritto solo i messaggi con titolo aaa e www, mentre gianni ha scritto quello con il titolo ffff.
    In questo modo, a livello di db, hai costruito quella che si chiama una FOREIGN KEY che permette il legame tra le due tabelle.

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    48
    Capito ti ringrazio molto, ma se metto anche alla seconda tabella il campo ID sono costretto a mettere come PRIMARY KEY questo ultimo campo; io avevo messo invece il campo indirizzo in modo tale che se nel db si trovava un indirizzo simile l'utente era costretto a modificarlo

  8. #8
    No no, ID nella seconda tabella non è PRIMARY KEY, è FOREIGN KEY ovvero chiave esterna (cioè legata ad un'altra tabella). Al lato pratico puoi trattarlo come un normalissimo campo specie se usi le tabelle MyISAM che non supportano le chiavi esterne. Se usi mysql con innodb oppure un altro db allora hai proprio una sintassi per questo tipo di chiavi.

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    48
    Io utilizzo MYSQL e per creare il campo ID uso INT (5) UNSIGNED not null AUTO_INCREMENT in entrambe le tabelle; però mettendo come PRIMARY KEY un altro valore, non posso creare le tabelle in quanto l'errore riscontrato è il seguente:
    there can be only one auto column and it must be defined as a key
    Grazie della risposta

  10. #10
    Allora nella tabella utenti ID è ok che sia
    INT (5) UNSIGNED not null AUTO_INCREMENT PRIMARY KEY
    Mentre nella tabella messaggi ID sarà
    INT (5) UNSIGNED not null

    in quanto i valori li metti tu e corrispondono agli id degli utenti e non devono incrementarsi in automatico. Non è neanche una chiave primaria in quanto se un utente scrive più messaggi la chiave non può essere unica.

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.