| | |
| | |
| maxmaxuell |
| | Cu-cł? c'č nessuno? Esiste un modo? un contatore che aumenta ogni mezzora? di 2 punti alla volta Esempio Web Designer Ciao, puoi usare lo Script PHP Toplist. www.webstyling.it/script/php/toplist_php.phpEsempio criric Ciao, provo a spararne una, molto molto artigianale ...... nella pagina degli accessi : CODICE <?php
//connessione a mysql $conn = mysql_connect("localhost", "root", "", "database"); $db = mysql_select_db("database"); // ad ogni nuovo accesso potremmo aggiornare il contatore // Calcolando che la query per l'inserimento degli accessi sia piu o meno cosi $query = "INSERT INTO accessi SET idUtente = " . $_SESSION['idUtente'] . ", dataAccesso = NOW()";
// impostiamo il tempo $minuti = 30; // recuperiamo il valore del contatore in questo caso da un file di testo $file = "contatore.txt"; $fr = fopen($file, 'r') or die("Impossibile aprire il file in lettura!"); $contatore = fgets($fr); fclose($fr);
// calcoliamo quanto tempo č passato dall'ultimo accesso $query = "SELECT TIMESTAMPDIFF(MINUTE , dataAccesso, NOW()) AS tempo FROM accessi ORDER BY dataAccesso DESC LIMIT 1"; $tempo = mysql_fetch_row(mysql_query($query));
// lo dividiamo per i minuti prefissati arrotondando all'eccesso $incremento = ceil($tempo[0] / $minuti);
// se maggiore di uno dobbiamo aumentare il contatore if ($incremento > 1) { // in pratica il numero dell mezze ore per i 2 punti $contatore+= $incremento * 2; } else { // altrimenti decrementiamo di 2 $contatore-=2; } // aggiorniamo il contatore $fr = fopen($file, 'w') or die("Impossibile aprire il file in scrittura!"); fwrite($fr, $contatore); fclose($fr); ?> Per visualizzare il contatore : CODICE <?php // nella pagina si visualizza $file = "contatore.txt"; $fr = fopen($file, 'r') or die("Impossibile aprire il file in lettura!"); $contatore = fgets($fr); fclose($fr); echo $contatore; ?> mi sembra ok c'č una parte che non capisco bene... HTML $query = "SELECT TIMESTAMPDIFF(MINUTE , dataAccesso, NOW()) AS tempo FROM accessi ORDER BY dataAccesso DESC LIMIT 1"; $tempo = mysql_fetch_row(mysql_query($query)); TIMESTAMPDIFF.....? la tabella č accessi i campi MINUTE, dataAccesso,NOW().. ----------------------------- - criric: La tabella č accessi i campi sono idUtente e dataAccesso TIMESTAMPDIFF č una funzione di mysql che ti restituisce la differenza tra due date con MINUTE gli indichi come ti deve restituire la differenza quindi in minuti NOW č la data corrente In pratica ti restituisce la differenza in minuti tra la data registrata e quella corrente Per la funzione TIMESTAMPDIFF č necessario il database ma la differenza tra due date si puo calcolare anche in php Senza database intendi anche per gli accessi? penso di si, al momento non mi viene in mente niente di intelligente pero se vuoi evitare il database ci possiamo provaree
| | |
| |
|
| 3 replies since 2/4/2012, 21:04 51 views |
| |
| | |