|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Sep 2014
Messaggi: 18
|
[php] Variabile immutabile
Salve a tutti.
Ho la necessità di creare un sito in cui devo gestire l'inserimento di un ordine di alcuni prodotti da parte di clienti che si connettono. Lo schema del database prevede tre chiavi primarie: ID_Cons (id che contraddistingue la consegna), ID_Prod (id per indicare il prodotto contenuto in magazzino) e ID_Cli (per indicare il cliente); mi servono queste tre chiavi perchè lo stesso cliente può ordinare anche più prodotti nella stessa consegna. Inoltre se il cliente è già presente all'interno del database, allora utilizzo il suo id, altrimenti creo una nuova riga dove inserisco il nuovo utente ricavandone l'id. Ho inserito la possibilità di confermare l'ordine o annullarlo ed è qui che incontro il mio problema: nel caso in cui io volessi cancellare l'ordine cancellerei tutte le righe con l'ID_Cons e, nel caso in cui io abbia inserito un nuovo utente, cancellerei anche quello; ed è proprio questo il problema: come faccio a definire se un utente è già presente all'interno del database o se è un nuovo utente? Ho fatto varie prove utilizzando variabili o costanti php, ma il risultato è sempre lo stesso, perchè utilizzo un solo documento php per gestire il tutto, quindi ogni volta che la pagina si aggiorna, le variabili inserite si cancellano... c'è un modo per definire una variabile che resti immutata una volta definita, anche nel caso in cui io aggiorni la pagina? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
In php "classico" non è possibile, puoi salvare questo dato su file o sul db stesso. Ci sarebbe anche la possibilità di salvare il dato nei cookie, ma è una soluzione inaffidabile perché i cookie non sono persistenti e sono legati al browser in uso.
L'ideale sarebbe avere un campo booleano nella tabella "utente" che indica se l'utente era già presente o è stato creato per l'occasione. Quando annulli un ordine puoi verificare se ci sono altri ordini per quell'utente, in caso negativo se l'utente è marcato come "creato ad hoc" lo elimini. |
|
|
|
|
|
#3 | |
|
Junior Member
Iscritto dal: Sep 2014
Messaggi: 18
|
Quote:
Grazie cmq per l'aiuto ^^ |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Intendo che sarebbe possibile realizzare delle estensioni per l'interprete php che consentano di conservare dati nella memoria del processo del web server (apache). E' una tecnica già implementata in php, ma attualmente è riservata alle connessioni con mysql, comunque avendo tempo e voglia è possibile estenderla ad altri ambiti.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:00.




















