Controllo errori su inserimento dati da form

di il
3 risposte

Controllo errori su inserimento dati da form

Buona sera a tutti.

Ponendo di avere un db con varie tabelle delle quali una viene popolata attraverso due pagine php.

 Una contiene un form e l'altra riceve i valori compilati e li invia al db per la scrittura (inserti into.....)

Il form ha vari campi di compilazione tra cui i due più importanti sono due select con le relative option che prendono i valori da altre rispettive tabelle dello stesso db (mariadb)

Si tratta di un insieme di compiti o servizi o insomma un qualcosa da svolgere giornalmente  da un gruppo di persone .

Nel programmare questo semplice task manager ho impostato il lavoro facendo in modo che una pagina web visualizzi i compiti assegnati a ciascun operatore in base alla login cosi se Pippo va nella sua area riservata del sito e clicca su "i miei compiti" vede esclusivamente i suoi compiti.

Colui che assegna i compiti, vuole ruotarli insomma, in modo che gli operatori sappiano svolgere tutti i tipi di compiti.

Quindi ogni giorno assegna questi compiti in maniera diversa considerato anche che può subentrare un nuovo servizio che magari non è giornaliero oppure lo è per un periodo limitato di tempo.

Il punto è che quello che vorrei aggiungere al mio progettino è un sistema di controllo per evitare che chi assegna i compiti compilando il form, non assegni lo stesso compito alla stessa persona oppure che uno dei compiti resti non assegnato e quindi non svolto.

In un sito il localhost che uso come test, la pagina web che visualizza i servizi agli operatori è già funzionante e preleva i compiti assegnati dall'omonima tabella del db.

Il form scrive quindi  i compiti nella tabella compiti_assegnati.

Nel form.php Il campo con label "operatore" è quindi una select e prende i nomi dal campo user della tabella users; mentre il campo con label "compiti_da_svolgere" prende le option dall'omonima colonna della tabella "lista_compiti"

Insomma fin qua il lavoro sarebbe pronto, ma non ha nessun controllo che possa aiutare ad evitare la duplicazione/omissione di un inserimento;

Come mi oriento? 

Grazie per eventuali suggerimenti

Filippo 

3 Risposte

  • Re: Controllo errori su inserimento dati da form

    Ovviamente si puo' fare ed e' un tipo di controllo "standard" in OGNI applicazione che ha un'interfaccia utente.
    Ma esiste lo stesso tipo di problema ANCHE in TUTTI gli altri tipi di programmi.

    "Come si fa".

    Qui' inizia la parte "complessa". 
    E' neccessario seguire un "paradigma" nello sviluppo dell'interfaccia utente, cioe' una serie di "regole" che hanno il compito di "suddividere" le funzionalita' in un certo numero di "gruppo" ed assegnarle ad un certo numero di "oggetti", ogn'uno dei quali e' "responsabile" per quel gruppo di funzionalita'.

    Esistono gia' tutta una serie di "paradigmi" che sono ben collaudati da 30/50 anni di sviluppo, quindi non devi inventarti niente ma SOLO studiare.

    1. MVC: Model View Controller
    2. MVP: Model View Presenter
    3. MVVM: Model View ViewModel
    4. ...

    .

    Mi sa che devi anche "cambiare" metodo di sviluppo dell'interfaccia utente, passando dalla pagina PHP, che e' un mix di implementazione lato client+lato server, ad un approccio "SPA" (Single Page Application) dove il client e' TUTTO in html+css+JavaScript, ed il server fornisce SOLO servizi REST, cioe' dati in formato JSON.

    .

    Ovviamente questo per fare le cose "per bene". Ma attento, "per bene" vuol dire:

    1. il codice e' "ordinato"
    2. e' facilmente "mantenibile", cioe' diventa "facile" aggiungere nuove funzionalita
    3. e' facile correggere gli errori
    4. e' facile capire che cosa fa anche dopo un anno che non ci metti mano
    5. e' facile da capire ANCHE da un tuo collega che ha esperienza di programmazione

    .

    L'alternativa e': qualunque soluzione riesci ad inventarti, va bene.

    .

    E' abbastanza "ovvio" che non possiamo darti dei "consigli" compatibili con le "tue" competenze. 
    Il motivo principale e' che "sappiamo gia'", per esperienza pregressa,i "disastri" che si sono generati NON SEGUENDO le regole indicate sopra.

    .

    Quindi il consigli e': acquista libri su come si implementa un'interfaccia utente via web e STUDIA.

  • Re: Controllo errori su inserimento dati da form

    08/12/2024 - Pierpippo73 ha scritto:

    Colui che assegna i compiti, vuole ruotarli insomma, in modo che gli operatori sappiano svolgere tutti i tipi di compiti.

    potrebbe essere molto più primitivo...

    hai un modo per verificare che le mansioni siano compatibili? 

    supponendo la gestione di un cantiere:

    mansioni: carpentiere, piastrellista, idraulico, elettricista. (mi fermo qui)

    pippo può fare tutti i lavori o si limita a carpentiere e piastrellista? (primo punto da chiarire)

    08/12/2024 - Pierpippo73 ha scritto:

    Il punto è che quello che vorrei aggiungere al mio progettino è un sistema di controllo per evitare che chi assegna i compiti compilando il form, non assegni lo stesso compito alla stessa persona oppure che uno dei compiti resti non assegnato e quindi non svolto.

    io ti direi di partire con i lavori da eseguire, poi in base agli operai (nell'esempio di cantiere) selezioni le figure professionali che hanno il requisito. man mano che viene assegnato in lavoro l'operaio viene rimosso dall'elenco delle figure professionali per i restanti compiti finchè la tabella "operai" non si svuota e la tabella "lista_lavori" si riempie (magari a suon di click).

    08/12/2024 - Pierpippo73 ha scritto:

    fin qua il lavoro sarebbe pronto, ma non ha nessun controllo che possa aiutare ad evitare la duplicazione/omissione di un inserimento

    se la lista si svuota non puoi sbagliare. Tutto dipende da come hai organizzato le tabelle che non vediamo.

  • Re: Controllo errori su inserimento dati da form

    Lato lista da cui prelevare i nominativi (A)

    select * from tabella1
    left join tabella2 on tabella2.detail=tabella1.Master and tabella1.IdLavoro=[tuocriteriodiselezionelavoriodierni]
    where tabella2.detail is null

    lato lavori assegnati (B)

    select * from tabella1
    left join tabella2 on tabella2.detail=tabella1.Master and tabella1.IdLavoro=[tuocriteriodiselezionelavoriodierni]

    ogni volta che vai su (A) fai:

    clickclick (sulla lista) oppure popupmenu (sulla lista) >>inserisci

    Update bla bla... [rigodellamansionedaassegnare]

    la tabella lavori dovrebbe essere già compilata mancherebbe solo da assegnare l'operatore cioè l'id di chi deve svolgere il lavoro

    ................................................................

    specularmente, nel caso di ripensamento, per togliere l'operatore dalla mansione assegnata clickclick (sulla tabella compiti) o popupmenu>>togli

    update set id=NULL

    e ricominci finchè finiscono i lavori da fare o gli operatori

    non lo testo con i tuoi dati. a me funziona per gestione haccp nell'inserimento ingredienti in una distinta di produzione per evitare duplicati di ingredienti (e/o lotti).

Devi accedere o registrarti per scrivere nel forum
3 risposte