|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Nov 2007
Messaggi: 142
|
[PHP/MySQL] Eseguri una query dopo 30 secondi
Ciao a tutti allora sto facendo un sito in php collegato a un database e devo riuscire a fare un operazione:
eseguire una query dopo x secondi che l'utente schiaccia il pulsante. La query deve essere eseguita anche se l'utente fa refresh o esce dalla pagina il tempo continua a passare e la query viene eseguita al momento giusto.
__________________
Ho concluso positivamente con sfanrock,TDM |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Dalla versione 5.1 puoi usare la gestione degli eventi: http://dev.mysql.com/tech-resources/...ql-events.html
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Padova
Messaggi: 2342
|
Non ho mai usato eventi in mysql, a colpo d'occhio sembrano fare al caso tuo.
Eventualmente anche via php quello che chiedi è fattibile, ma richiede una buona gestione soprattutto nel caso in cui lo stesso utente mandi più richieste (per esempio refresh selvaggio). Per fare quello che chiedi prova: Codice:
<?php if (!richiesta_autorizzata()) exit(); //Se l'operazione non è permessa, chiudi lo script. Questa parte la dovresti per sicurezza... ignore_user_abort (true); //Continua lo script anche se l'utente abbandona la pagina o chiude il browser set_time_limit(0); //Imposta quanti secondi lo script può rimanere in esecuzione 0=infinito. Di default sono 30, settati nei file di conf di php sleep(30); // Metti in pausa lo script per 30 secondi // Operazioni sul database // Altre operazioni ?>
__________________
CPU Ryzen 2600 @ 3,95Ghz + Bequiet Dark Rock TF / MB Asus X470-F Gaming / RAM 2x8GB DDR4 G.Skill FlareX 3200 CL14 / VGA Sapphire RX 7900 XT Nitro+ @ 3200Mhz / SSD Samsung 970 Pro 512GB + Sandisk 240GB Plus + Sandisk 960GB Ultra II PSU Seasonic Platinum P-660 / Headset Kingston HyperX Flight Ultima modifica di demos88 : 22-05-2011 alle 23:05. |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Nov 2007
Messaggi: 142
|
ok grazie mo li provo tutti e 2 e vedo qual'è meglio un altra cosa:
io ho il campo numerico in una tabella(t_somma) che è la somma del valore di altre tabelle (t_1,t_2)è possibile che quando cambio il valore di t_1 o t_2 il campo somma si aggiorni autmoaticamente o deve fare il comando update?
__________________
Ho concluso positivamente con sfanrock,TDM |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Nov 2004
Città: Padova
Messaggi: 2342
|
Quote:
Non ho presente l'ambito in cui hai progettato la base di dati, tuttavia considerare un attributo come somma di altri due attributi (anche di altre tabelle) è tipicamente poco consigliato. L'uso di attributi derivati, come quello del tuo caso, è consigliabile solo nelle situazioni in cui la determinazione del valore sarebbe troppo pesante da fare sul momento, come per esempio calcolare il numero di post fatti da un utente in un forum. Se dovessi calcolarlo per ogni utente ogni volta che visualizzo un thread sul browser sarebbe pesantissimo perchè dovrei fare una ricerca di molteplici record in una tabella di decine di migliaia di record... Invece nel tuo caso è una somma tra due valori, ti consiglierei di valutare di modificare la gestione e calcolare la somma solo quando ti serve mediante query (usando un join).
__________________
CPU Ryzen 2600 @ 3,95Ghz + Bequiet Dark Rock TF / MB Asus X470-F Gaming / RAM 2x8GB DDR4 G.Skill FlareX 3200 CL14 / VGA Sapphire RX 7900 XT Nitro+ @ 3200Mhz / SSD Samsung 970 Pro 512GB + Sandisk 240GB Plus + Sandisk 960GB Ultra II PSU Seasonic Platinum P-660 / Headset Kingston HyperX Flight |
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Nov 2007
Messaggi: 142
|
si volendo posso farlo tramite query, quindi se mi sconsigli farò cosi, solo che quella somma la devo fare su tipo 1000 righe ogni 8 ore dici che è comunque meglio l'update?
__________________
Ho concluso positivamente con sfanrock,TDM |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Nov 2004
Città: Padova
Messaggi: 2342
|
Quote:
Quante volte in tutto al giorno ti serve avere quella somma? Quante volte in tutto al giorno aggiorni uno degli attributi addendi (e quindi la somma)? Gli accessi sono concentrati in determinati momenti o sparsi? L'unico caso in cui è utile avere un attributo somma è se ti serve continuamente (almeno una volta al secondo) la somma e gli attributi non sono modificati troppo spesso (se fossero modificati di continuo, dovresti continuamente ricalcolare la somma appesantendo la base). Nel tuo caso non ho capito se le 1000 somme le fai tutte insieme o sparse. Se sono sparse su 8 ore direi che la somma non ti serve averla già fatta, ma anche se fossero concentrate, penso che 1000 righe verrebbero comunque processate in pochi istanti. Magari ci sono pure altre soluzioni, è che non ho la minima idea di che tipo di dati stai trattando. In ogni caso NON è necessariamente sbagliato usare un attributo derivato, semplicemente tali situazioni, insieme alle ridondanze, vengono tipicamente eliminate in fase di normalizzazione della base di dati (ovvero quel processo di progettazione del database che porta un progetto dalla fase concettuale a quella logica e fisica). In pratica, quando studi basi di dati all'università o alle superiori, ti viene detto di evitare come la peste l'uso di attributi derivati. Ciò non toglie che la base di dati funzioni perfettamente anche lo stesso.
__________________
CPU Ryzen 2600 @ 3,95Ghz + Bequiet Dark Rock TF / MB Asus X470-F Gaming / RAM 2x8GB DDR4 G.Skill FlareX 3200 CL14 / VGA Sapphire RX 7900 XT Nitro+ @ 3200Mhz / SSD Samsung 970 Pro 512GB + Sandisk 240GB Plus + Sandisk 960GB Ultra II PSU Seasonic Platinum P-660 / Headset Kingston HyperX Flight |
|
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Nov 2007
Messaggi: 142
|
okok proverò con l'update grazie
__________________
Ho concluso positivamente con sfanrock,TDM |
|
|
|
|
|
#9 |
|
Member
Iscritto dal: Nov 2007
Messaggi: 142
|
sono tornato
Sto facendo un sito in php collegato a un database e devo riuscire a fare un operazione: eseguire una query dopo 30 secondi che l'utente schiaccia il pulsante. La query deve essere eseguita anche se l'utente fa refresh o esce dalla pagina il tempo continua a passare e la query viene eseguita al momento giusto.
__________________
Ho concluso positivamente con sfanrock,TDM Ultima modifica di Zombie88 : 05-06-2011 alle 19:27. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:26.



















