Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 18-12-08, 17:00   #16 (permalink)
 
L'avatar di Kian
 
Data di registrazione: Feb 2008
Messaggi: 115
Si ma tale controllo è comunque automatico immagino. Per fare il controllo o qualcuno visualizza la pagina o automatizza la sua esecuzione. Questo automatismo è sempre cron o sbaglio?
Kian non in linea   Rispondi citando
Vecchio 18-12-08, 17:01   #17 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,439
Invia un messaggio tramite Skype a Thedarkita
Viene fatto sulle pagine, quando un visitatore entra in una pagina del cms lo script esegue anche questo controllo
Thedarkita non in linea   Rispondi citando
Vecchio 18-12-08, 17:07   #18 (permalink)
 
L'avatar di Kian
 
Data di registrazione: Feb 2008
Messaggi: 115
Quindi se non posso utilizzare cron (sto su Aruba e credo lo blocchi) o mi impegno ogni giorno a refreshare lo script o devo rinunciare. Giusto?
Kian non in linea   Rispondi citando
Vecchio 18-12-08, 17:08   #19 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,439
Invia un messaggio tramite Skype a Thedarkita
Usi cron esterni... che si occupino loro di visitare una volta al giorno(o più volte) la tua pagina
Thedarkita non in linea   Rispondi citando
Vecchio 18-12-08, 17:10   #20 (permalink)
 
L'avatar di Kian
 
Data di registrazione: Feb 2008
Messaggi: 115
Ne conosci qualcuno? Sai conosco cron da ieri
Kian non in linea   Rispondi citando
Vecchio 18-12-08, 17:13   #21 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,439
Invia un messaggio tramite Skype a Thedarkita
Basta cercare free cron su google
Se ne trova parecchi...
Thedarkita non in linea   Rispondi citando
Vecchio 19-12-08, 00:23   #22 (permalink)
 
L'avatar di Kian
 
Data di registrazione: Feb 2008
Messaggi: 115
Ok, ho trovato un servizio che pare essere molto valido. Adesso vorrei tornare un attimo sullo script perchè ho un problema. Farò degli esempi per cercare di farmi capire.

Tabella ---> scadenze_clienti
--Nome--Durata--
Cliente1----90-----
Cliente2----120----
Cliente2----360----
Codice PHP:
$result mysql_query("SELECT * FROM ".PREFIX."scadenze_clienti")
or die(
mysql_error());
$row mysql_fetch_array$result );

$days $row['durata'];
$cron '1';
$nuova_durata $days $cron;

mysql_query("UPDATE ".PREFIX."scadenze_clienti SET durata='$nuova_durata'")
or die(
mysql_error()); 
Il punto è che in questo modo tutti i valori nel campo Durata si equivalgono quindi 90, 120, 360 diventano 90, 90, 90. E' logico pensare di mettere nell'UPDATE un WHERE ma non so quale argomento porre.
Kian non in linea   Rispondi citando
Vecchio 19-12-08, 01:02   #23 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,439
Invia un messaggio tramite Skype a Thedarkita
Ciao,

puoi fare una sola query cosi:
mysql_query("UPDATE ".PREFIX."scadenze_clienti SET durata=durata-1")

In questo modo ti decrementa tutti di 1
Thedarkita non in linea   Rispondi citando
Vecchio 19-12-08, 11:26   #24 (permalink)
User
 
Data di registrazione: Oct 2006
Messaggi: 287
Invia un messaggio tramite Skype a mikslap
Perchè i cron

Quote:
Kian Visualizza il messaggio
Ok, ho trovato un servizio che pare essere molto valido. Adesso vorrei tornare un attimo sullo script perchè ho un problema. Farò degli esempi per cercare di farmi capire.

Tabella ---> scadenze_clienti
--Nome--Durata--
Cliente1----90-----
Cliente2----120----
Cliente2----360----
Codice PHP:
$result mysql_query("SELECT * FROM ".PREFIX."scadenze_clienti")
or die(
mysql_error());
$row mysql_fetch_array$result );

$days $row['durata'];
$cron '1';
$nuova_durata $days $cron;

mysql_query("UPDATE ".PREFIX."scadenze_clienti SET durata='$nuova_durata'")
or die(
mysql_error()); 
Il punto è che in questo modo tutti i valori nel campo Durata si equivalgono quindi 90, 120, 360 diventano 90, 90, 90. E' logico pensare di mettere nell'UPDATE un WHERE ma non so quale argomento porre.
Perchè insistere così. Forse mi sfugge qualcosa perchè con un semplice while della tabella puoi decrementare, per ogni utente, il valore desiderato ed includere nello stesso ciclo vari controlli. Il WHERE da poter porre sarebbe quello di escludere i clienti con il campo durata uguale a 0 (zero)
Sbaglio o stiamo parlando di due cose diverse
Ciao

Ultima modifica di mikslap : 19-12-08 11:30.
mikslap non in linea   Rispondi citando
Vecchio 19-12-08, 13:54   #25 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,439
Invia un messaggio tramite Skype a Thedarkita
Per fare quello che dici tu è sufficiente questa query, senza alcun ciclo o altro...
Codice PHP:
mysql_query("UPDATE ".PREFIX."scadenze_clienti SET durata=durata-1 WHERE durata != '0'"
Thedarkita non in linea   Rispondi citando
Vecchio 19-12-08, 16:00   #26 (permalink)
 
L'avatar di Kian
 
Data di registrazione: Feb 2008
Messaggi: 115
Grazie mille a tutti funziona che è una favola. Vi chiedo l'ultima cosa (spero sia l'ultima). Con il cron i giorni passano 30, 29, 28... 8, 7 (...) bene vorrei che quando mancano 7 giorni (durata = 7) partisse una mail. Ho già fatto tutto.
Codice PHP:
$query "SELECT * FROM ".PREFIX."scadenza_clienti WHERE durata='7'";
$query_ret mysql_query($query);

while(
$sql_return mysql_fetch_assoc($query_ret))
    {
$query_1 "SELECT * FROM ".PREFIX."clienti WHERE id_cliente='$sql_return[id_cliente]'";
$query_ret_1 mysql_query($query_1);
    }

while(
$sql_return_1 mysql_fetch_assoc($query_ret_1))
    {
$msgformat "Gentile $sql_return_1[nome] $sql_return_1[cognome],
Restano $sql_return[durata] giorni alla scadenza del contratto"
;

mail("$sql_return_1[mail]""Restano $sql_return[durata] giorni alla scadenza""$msgformat""From: Miaditta <miamail>");
    } 
Il codice, anche se un può impicciato (l'ho dovuto anche "censurare" in certi punti perchè non me lo faceva postare), fa il sulo lavoro ma per metà. Invia il messaggio solo al primo record della tabella. Non riesco a dare alle variabili $sql_return[nomecampo] la valenza di array. Valgono come singolo record. Come l'avevo intesa io $sql_return[mail] corrisponde a tutti gli indirizzi mail di tutti i clienti con durata=7

Ultima modifica di Kian : 19-12-08 16:07.
Kian non in linea   Rispondi citando
Vecchio 19-12-08, 17:32   #27 (permalink)
User
 
Data di registrazione: Oct 2006
Messaggi: 287
Invia un messaggio tramite Skype a mikslap
[..]
E' normale perchè nel secondo ciclo while è incluso solo l'ultimo record del primo ciclo while. In pratica così è inutile metterlo. Prova ad includere il secondo ciclo nel primo. Dovrebbe fare qualcosa non ne sono certo devo vedere qualche altra possibilità.

Ultima modifica di Samyorn : 19-12-08 21:47. Motivo: Inutile quotare il messaggio a cui si risponde.
mikslap non in linea   Rispondi citando
Vecchio 19-12-08, 17:40   #28 (permalink)
 
L'avatar di Kian
 
Data di registrazione: Feb 2008
Messaggi: 115
Ma lol che lo facevo a fare il cliclo? Il problema era quello. Adesso le email partono che è una bellezza tutto con array. Grazie grazie
Kian non in linea   Rispondi citando
Vecchio 19-12-08, 17:52   #29 (permalink)
User
 
Data di registrazione: Oct 2006
Messaggi: 287
Invia un messaggio tramite Skype a mikslap
FORSE QUESTO TI E' PIU' UTILE

$query = "SELECT * FROM ".PREFIX."scadenza_clienti WHERE durata='7'";
$query_ret = mysql_query($query);

// QUI IO USO UN'ALTRA SINTASSI
while($obj_return = mysql_fetch_object($query_ret))
{
$ID_CLIENTE = ($obj_return->id_cliente); // ID CLIENTE TABELLA SCADENZA
$query_1 = "SELECT * FROM ".PREFIX."clienti WHERE id_cliente='$ID_CLIENTE'";
$query_ret_1 = mysql_query($query_1);
$obj_mail = mysql_fetch_object($query_ret_1);
$NOME = ($obj_mail->nome); // NOME DEL CLIENTE
$COGNOME = ($obj_mail->cognome); // COGNOME DEL CLIENTE
$DURATA = ($obj_mail->durata); // DURATA CONTRATTO

// CONTROLLO PER UNA DICITURA CORRETTA - QUESTO PUO' SERVIRTI NEL CASO
// IN CUI VUOI SPEDIRE ALTRE MAIL POCO PRIMA DELLO SCADERE O MAGARI IL GIORNO PRIMA
if ($DURATA >= 2)
{
$RESTA = "Restano";
$GIORNI = "giorni";
}
else
{
$RESTA = "Resta";
$GIORNI = "giorno";
}

$EMAIL = ($obj_mail->mail); // MAIL DEL CLIENTE
$msgformat = "Gentile $NOME $COGNOME,
$RESTA $DURATA $GIORNI alla scadenza del contratto";

mail($EMAIL, "$RESTA $DURATA $GIORNI alla scadenza", "$msgformat", "From: Miaditta <$miamail>");
} // CHIUDO WHILE

Ultima modifica di mikslap : 19-12-08 17:58.
mikslap non in linea   Rispondi citando
Rispondi


Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 13:01.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.