Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [php]accesso contemporaneo ad una pagina e inserimento nel db

    non sapevo che titolo dare per spiegare il mio problema


    comunque, veniamo subito al dunque, ho creato un'area amministrativa per la gestione di un call center, dove gli operatori telefonici parlando con il cliente devono anche fissargli un appuntamento, oltre ad inserire molti altri dati.
    Per fissare l'appuntamento ho dovuto seguire una linea come voleva il richiedente, quindi c'è un calendarietto che si apre in pop-up, dal calendario seleziono la data e una volta selezionata la data mi viene richiesto di selezionare l'orario.
    La selezione dell'orario è fatta tramite semplici radio e se un orario è già prenotato viene scritto "appuntamento sig. pinco pallino" senza dare ovviamente la possibilità di selezionarlo nuovamente.

    Il mio problema è appunto se due operatori rispondono contemporaneamente ad una chiamata, e andando nella parte relativa all'appuntamento vedono il giorno 15/12 alle ore 15:00 libero, lo prenotano entrambi...io che faccio? mi attacco?

    L'appuntamento viene inserito nel db nel momento in cui viene inserita l'intera pratica, la cui operazione, ora che si compila tutto il form parlando al telefono, potrebbe richiedere anche diversi minuti.

    L'appuntamento lo inserico alla fine perché magari poi l'operatore chiude la telefonata e non fissa nessun appuntamento...

    Avete idee su come si possa ovviare a questo "inconveniente"?




    Grazie mille, per qualsiasi aiuto!


    p.s. sorry per il post lunghetto e sorry se non sono riuscito a spiegare bene
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    potresti integrare l'utilizzo di ajax e aggiornare la parte relativa agli orari ogni tot secondi, in questo modo se uno è al telefono da 10 minuti vede le informazioni aggiornate, e non quelle di 10 minuti prima.

    Poi dovresti bloccare l'accesso concorrenziale in caso di inserimento...

    ciao

  3. #3
    si ma per ajax i dati li devo inserire comunque nel db o devo averli già inseriti per modificarli, o ho capito male?

    io li devo inserire solo alla fine, non posso tener occupato un orario se poi effettivamente non viene inserito.
    Per l'aggiornamento della pagina ogni n secondi lo posso fare tranquillamente.


    Mentre per la seconda parte dove parli di bloccare l'accesso concorrenziale in caso di inserimento ecco, esattamente, come lo faccio? hai un link con un pò di documentazione?



    thx
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  4. #4
    secondo me l'orario e la data potresti selezionarli alla fine della telefonata, quando già sai il problema e quanto tempo ti richiede la soluzione.
    Ciao!

  5. #5
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da fmortara
    secondo me l'orario e la data potresti selezionarli alla fine della telefonata, quando già sai il problema e quanto tempo ti richiede la soluzione.
    questa idea mi sembra già buona, altrimenti per l'accesso concorrenziale prova a guardare questa pillola, dove parla del comando LOCK TABLE

    http://forum.html.it/forum/showthrea...hreadid=603762

    comunque il punto era:

    fare il refresh per avere sempre le ultime informazioni, bloccare l'accesso alla tabella in fase di inserimento in modo da evitare sovrapposizioni



  6. #6
    dunque, la data e l'orario vanno scelti nella scheda d'inserimento perché così mi hanno detto di fare, non posso metterlo dove mi fa più comodo, se posso risolvere il problema lasciando com'è è meglio.

    Poi, ora sto guardando la pillola che mi hai linkato e la trovo molto interessante. L'unica cosa che non mi è chiara è questa:
    io inizio una transazione con l'utente pippo e in questo momento solo lui può scrivere sulla mia tabella, mettiamo che l'utente pluto acceda alla stessa pagina e voglia scrivere...cosa succede? ottengo degli errori?






    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  7. #7
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    sinceramente non lo so, comunque sicuramente puoi gestire tu la cosa...

    certo, stavo pensando che la cosa non è il massimo nel caso in cui ci siano molte persone nel callcenter, perchè rischi che si crei un collo di bottiglia in cui tutti devono aspettare il loro turno per scrivere l'orario...

  8. #8
    lol interessante...ogni povero operatore ci metterà 27 giorni per inserire un contatto

    scherzi a parte, vedrò quel che riesco a fare, al momento ho aggiunto semplicemente il refresh automatico della pagina ogni 10 secondi sperando che quei 10 secondi sia un tempo accettabile.

    se avete altre idee o approfondimenti dove possa leggere e documentarmi postate pure




    Grazie mille!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  9. #9
    allora, ti ripeto, quando tu accetto una chiamata, e all'inizio stabilisci ore 10.00 magari ore 10.30 che rimane libero, non può esserlo invece perche poi ti accordi che la chiamata precedente ha un problema che richiede 2 ore anzichè 20 minuti.
    capito?
    invece tu devi prima acquisire il problema, poi dare un orario e dei tempi di lavoro, in questo modid impegni i tempi correttamente, e non puoi avere problemi di duplicazione dei dati.

    poi due cose:
    1. l'inserimento dei dati contemporaneo, l'inserimento effettivo ed il blocco della tabella, non devono durare per tutto il tempo di inputazione dei dati, ma solo per il tempo in cui mysql scrive i dati nel DB ( 1 ms... dico per dire...)
    2. se devi per forza inserire l'ora prima, allora blocca l'orario nel DB, poi a scheda acquisista lo confermi, in caso l'acquisizione non va a buon fine, liberi nuovamente l'ora richiesta!



    facci sapere!
    Ciao!

  10. #10
    dunque

    alla fine ho "risolto" facendo più o meno come hai descritto al punto 1. In effetti il LOCK delle tabelle dura pochissimo, dovendo inserire solo testo.

    Comunque per un'ulteriore verifica, oltre a fare il refresh della pagina in cui ci sono gli orari, nel momento in cui l'operatore mi clicca su inserisci faccio un controllo per verificare che nel frattempo che lui ha finito di compilare il proprio modulo non ci sia stato un utente più veloce che gli ha allegramente fottuto (sorry per il termine, ma sono giunto ad un passo dal suicidio perché quest'area riservata, su cui sto lavorando da MESI ogni giorno presenta cose nuove da aggingere ) l'orario e la data che aveva scelto.

    Così facendo dovrei essere sicuro che non vengano sovrascritti appuntamenti...no?





    Grazie mille per tutti i suggerimenti!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

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.