[RISOLTO]Aiuto per Record che si deve autocancellare

siriano

Nuovo Utente
6 Nov 2013
7
0
0
Un saluto a tutti, sono nuovo, fresco fresco, praticamente appena sfornato...
Complimenti per questo Grande Forum, soprattutto per uno come me che è fresco fresco anche di programmazione.

Mi serve un aiutone per questo problemuccio, ovviamente per voi grandi programmatori:
un utente arriva sul sito, inserisce la sua email in un form che viene registrata in un database
insieme alla data di inserimento e fin qui tutto fatto e funzionante con relativa conferma via email, ecc.

Voglio fare in modo che quell'utente dopo 3 giorni dall'inserimento, o 30 giorni per altri casi,
venga automaticamente cancellato dal database.

Ora io immagino che il campo data_inserimento deve essere ovviamente di tipo data ma deve avere altre specifiche?
E poi per far cancellare quell'utente dopo 3 o 30 giorni?
Ho provato qualcosa e letto parecchio ma da qui in poi sono affossato
mysql_query("DELETE FROM iscritti WHERE data_inserimento < '"."'", $db) or die(mysql_error());
è possibile fare qualcosa tipo $data_inserimento + ....... ma come si fa in php a dirgli + 3 o 30 giorni?

Grazie a tutti, belli e brutti.
Siriano
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
prima di risponderti è bene che tu dica in che formato hai salvato la data di inserimento (es. gg/mm/yy o altro modo?)
quando si lavora con le date è importante la loro formattazione
 

siriano

Nuovo Utente
6 Nov 2013
7
0
0
Grazie per le risposte, per borgo italia: il mio problema è proprio quello cioè in che formato deve essere salvata la data
e come deve essere il campo mysql,
per criric: il post lo avevo già letto ma non risponde alle mie domande, come si fa a dirgli 3 0 30 giorni,
li si parla di un anno esatto che probabilmente è tutta un'altra funzione.

Partito dal presupposto che io in programmazione sono un neonato.
Salutoni.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
per fare dei confronti tra date le date dovrebbero essere nel formato anno mese giorno e non nel classico formato italiano (giorno mese anno)
questo perchè (es)
data_1 = 10/11/2013
data_2 = 30/03/2013

se fai il confronto risulta che data_2 maggiore di data_1 il che è assurdo, mentre nel caso aa mm gg
data_1 = 2013/11/10
data_2 = 2013/03/31

nel confronto risulta giustamente che data_1 è maggiore di data_2
detto questo veniamo al tuo problema, è mio stile non salvare nel db le date in formato data (a mysql non glene può fregà de meno cosa contiene un campo), ma uso il timestamp (secondi trascorsi dal 1 gennaio 1970 00:00:00 GMT)
quindi nelle mie tabelle il campo è
data int(12)
cioè quando inserisco un record (tralascio tutto il resto schematizzando)
PHP:
<?php
$data_inserimento=time();//espresso in secondi
$query ="INSERT INTO tabella(data) VALUES($data_inserimento)";
?>
poi quando devo leggere o, come devi fare tu
PHP:
<?php
$inserito_il = $row['data'];//letto dalla tabella
//per visualizzarla in formato umano e italiano
echo "inserito il ".date("d.m.Y",$inserito_il);//es output -> inserito il 07.11.2013
//per verificare se l'inserimeto e più o meno vecchio di es 3 gg
$oggi=time();//leggo la data di oggi sempre in timestamp
$limite= $oggi - (3*24*60*60);//tolgo tre gg, sempre espimendo il tutto in secondi
if($inserito_il > $limite){
	//non sono passati tre giorni dall'inserimento del record
}else{
	//sono passati tre o più giorni dall'inserimento
}
?>
quindi in funzione se passati o no fai quello che devi fare, evidentemente puoi cambiare il numero di giorni (es 22*24*60*60)
comunque questo è come faccio io, ma non è l'unico metodo, è quello con cui io mi trovo meglio
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
come si fa a dirgli 3 0 30 giorni
1 anno
Codice:
DELETE from tabella_registrati WHERE dataReg <= DATE_SUB(CURDATE(), INTERVAL 1 YEAR)
1 mese
Codice:
DELETE from tabella_registrati WHERE dataReg <= DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
3 giorni
Codice:
DELETE from tabella_registrati WHERE dataReg <= DATE_SUB(CURDATE(), INTERVAL 3 DAY) // o DAYS da provare
 

siriano

Nuovo Utente
6 Nov 2013
7
0
0
Grazie per le risposte, esaurienti e capibili.
Il metodo più adatto a me penso sia quello di borgo al quale chiedo come ultima cosa:
PHP:
<?php 
$inserito_il = $row['data'];//letto dalla tabella 
//per visualizzarla in formato umano e italiano 
echo "inserito il ".date("d.m.Y",$inserito_il);//es output -> inserito il 07.11.2013 
//per verificare se l'inserimeto e più o meno vecchio di es 3 gg 
$oggi=time();//leggo la data di oggi sempre in timestamp 
$limite= $oggi - (3*24*60*60);//tolgo tre gg, sempre espimendo il tutto in secondi 
if($inserito_il > $limite){ 
    //non sono passati tre giorni dall'inserimento del record  <<<  QUI COSA DOVREI METTERCI?
}else{ 
    //sono passati tre o più giorni dall'inserimento   <<< QUI EVIDENTEMENTE LA STRINGA PER CANCELLARE I RECORD SCADUTI
} 
?>
puoi cortesemente inserirmi 2 esempi concreti?

Grazie e saluti.
 
Ultima modifica di un moderatore:

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
//sono passati tre o più giorni dall'inserimento <<< QUI EVIDENTEMENTE LA STRINGA PER CANCELLARE I RECORD SCADUTI
La stringa per cancellare i record scaduti è una query che ti è stata già suggerita da Criric.
Per quanto riguarda il "come" inserire una query e lanciarla ti linko la voce del manuale che è sicuramente più chiaro di me.
//non sono passati tre giorni dall'inserimento del record <<< QUI COSA DOVREI METTERCI?
Poi per quanto riguarda cosa mettere qui dipende da quello che vuoi fare con i record "giovani".
 

siriano

Nuovo Utente
6 Nov 2013
7
0
0
Ok grazie a tutti.

C'è un programmatore php che mi aiuta a realizzare un progetto che ho in testa, in pratica mi serve uno script per la gestione di abbonamenti mensili,
vendita di previsioni del lotto in abbonamento.

Saluti.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ti conviene postare la richiesta in Offerte e Richieste di lavoro : è più facile che li la richiesta venga vista. Puoi anche indicare se il lavoro sarà retribuito o se la richiesta ha titolo gratuito direttamente nel titolo della discussione, prova a dare un occhiata a quelle già esistenti.
 

marino51

Utente Attivo
28 Feb 2013
3.002
173
63
Lombardia
Scusa se intervengo quando tutto sembra concluso ....

io aspetterei a cancellare, piuttosto escluderei il "passato" dalle viste della gestione corrente,
il passato potrebbe essere fonte di statistiche, di ricerche sui più attivi, di chi ha abbandonato ... e altre informazioni

ciao
Marino
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
non ho capito cosa intendi, generalmente non cancelliamo nulla.
criric intendeva che il post con la richiesta
C'è un programmatore php che mi aiuta.....
sarebbe meglio scriverlo nella sezione "offerte e richieste di lavoro", per due motivi:
1) qui non c'entra nulla
2) chi cerca/offre lavoro non guarda la sez php, ma quella di offerte/richieste
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Io credo che marino51 si riferisse alla DELETE di questa discussione
Sono completamente d'accordo
Preferisco aggiungere un campo con attivo 0 o 1, aggiornarlo con un UPDATE e tenermi la cronologia degli utenti registrati
 
Discussioni simili
Autore Titolo Forum Risposte Data
A [risolto] aiuto integrazione query per db calcistico MySQL 2
S [RISOLTO]aiuto, non riesco afar funzionare il camp odi ricerca per un DB con PHP PHP 5
F [risolto] Aiuto parametro SET phpmyadmin PHP 2
L [risolto] Campo prezzo float. Elimina lo zero finale.aiuto MySQL 4
S [risolto] Aiuto: ciclo php ( for / while). popolare select dinamicamente da array id. PHP 9
E [RISOLTO] Aiuto impostazione mail.php PHP 2
L (risolto) MySQL 0
B getElementById su piu id(Risolto) Javascript 6
L Esercitarsi con Js [RISOLTO] Javascript 4
C [RISOLTO]Inserimento variabile php in input html PHP 20
L risolto visualizzazione e ordinamento dati PHP 1
moustache [RISOLTO] SQL PHP IIS PHP 8
Sergio Unia Ricezione email con destinatari multipli [Risolto] PHP 2
L update tabelle in php mysql [risolto] PHP 6
M Semplice visualizzatore di immagini [risolto con plugin wp] PHP 7
L [RISOLTO] Stampa a video risultato count in html PHP 13
L [RISOLTO] Eliminare una discussione creata PHP 3
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
A [PHP] Problema query insert [RISOLTO] PHP 14
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
elpirata [RISOLTO][Javascript] Datapicker e autocompletamento campo input Javascript 2
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
G [MS Access] Casella combinata & Query [RISOLTO] MS Access 4
G [MS Access] Query mese corrente con conteggio [RISOLTO] MS Access 2
M [RISOLTO]Windows media player non mi funziona più su win 10 pro 64 bit Windows e Software 2
C [RISOLTO][PHP] Errore di sintassi PHP 8
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [RISOLTO][PHP] Funzione ONclick PHP 14
C [RISOLTO][PHP] Conteggio righe di una tabella PHP 4
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
Tommy03 [RISOLTO][PHP] Webserver o devserver? PHP 2
Sergio Unia Recupero dati da una vecchia versione MySql [Risolto] MySQL 4
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1
A [RISOLTO]Inserimento Immagini da pc a MySql PHP 15
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
felino Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione WordPress 2
elpirata [PHP][RISOLTO] Sommare gli importi estratti da un ciclo while PHP 3
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
elpirata [PHP] [RISOLTO]Sovrascrivere testo in una tabella PHP 2
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7
elpirata [PHP][RISOLTO] Errore di tipo Notice: Undefined index - Come risolvere quando si hanno tante var PHP 10
S Problema in PHP per invio file XML - RISOLTO- PHP 8
A [Javascript] [RISOLTO] Doppio "submit", in uno stesso "Form" , che puntino ad "action" diversi Javascript 1
marino51 [Risolto]videochat di messenger ha smesso di funzionare sul telefonino Smartphone e tablet 1

Discussioni simili